当前位置: 首页 > news >正文

蓝桥杯 【日期统计】【01串的熵】

日期统计

第一遍写的时候会错了题目的意思,我以为是一定要八个整数连在一起构成正确日期,后面发现逻辑明明没有问题但是答案怎么都是错的才发现理解错了题目的意思,题目的意思是按下标顺序组成,意思就是可以不连续,我还是把它想得太简单啦

这是一段判断连续下标可以组成日期的代码,我利用了一个数组判断该日期是否在前面出现过

#include<stdio.h>
int main(){
int count[10000]={0};//方便判断日期是否出现过
int charge[13];//判断月份对应的日期是否合法
int shuzu[100];
int i,year,day,month,t=0;
for(i=0 ; i<100 ; i++)
{scanf("%d",&shuzu[i]);//输入数组
}
for(i=1 ; i<=12 ; i++){//初始化chargeif(i==2){charge[i]=28;}else if(i==4 || i==6 || i==9 || i==11 ){charge[i]=30;}else{charge[i]=31;}
}
for(i=0 ; i<92 ;i++){year=shuzu[i]*1000+shuzu[i+1]*100+shuzu[i+2]*10+shuzu[i+3];month=shuzu[i+4]*10+shuzu[i+5];day=shuzu[i+6]*10+shuzu[i+7];if(year==2023){if(0<month && month<=12){if(day>0 && day<=charge[month]){if(count[month*100+day]==0){t++;count[month*100+day]=1;}}}}
}
printf("%d",t);
return 0;
}

这是正确的代码,逐个遍历2023年的每一天,并查找给出数组是否有相同

#include <stdio.h>int main() {int array[100] = {5, 6, 8, 6, 9, 1, 6, 1, 2, 4, 9, 1, 9, 8, 2, 3, 6, 4, 7, 7,5, 9, 5, 0, 3, 8, 7, 5, 8, 1, 5, 8, 6, 1, 8, 3, 0, 3, 7, 9,2, 7, 0, 5, 8, 8, 5, 7, 0, 9, 9, 1, 9, 4, 4, 6, 8, 6, 3, 3,8, 5, 1, 6, 3, 4, 6, 7, 0, 7, 8, 2, 7, 6, 8, 9, 5, 6, 5, 6,1, 4, 0, 1, 0, 0, 9, 4, 8, 0, 9, 1, 2, 8, 5, 0, 2, 5, 3, 3};int daysInMonth[13] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};int ans = 0;int month,day,i;for ( month = 1; month <= 12; ++month) {for ( day = 1; day <= daysInMonth[month]; ++day) {int dateSeq[8] = {2, 0, 2, 3, month / 10, month % 10, day / 10, day % 10};int k = 0;for ( i = 0; i < 100; ++i) {if (array[i] == dateSeq[k]) {++k;if (k == 8) {ans++;break;}}}}}printf("%d\n", ans);return 0;
}

01串的熵

不要被题目吓到啦,暴力遍历就好,我一开始混用了double与int,结果发现i不能是float,只能是int,因为后面要输出(又是被小错误绊倒)

#include <stdio.h>
#include <math.h>
int main()
{double max=23333333,Sum;int i;for(i=0 ; i<=max/2 ;i++){Sum=0;Sum-=i*(i/max)*log2(i/max)+(max-i)*((max-i)/max)*log2((max-i)/max);if(Sum > 11625907.5 && Sum < 11625907.6){printf("%d",i);break;}}return 0;
}

冶练金属

一遍过

#include <stdio.h>
#include <stdlib.h>int main()
{int n,i,j;scanf("%d",&n);int a[n],b[n];//用两个数组分别储存输入int min[n],max[n],n_min,n_max;for(i=0;i<n;i++){scanf("%d %d",&a[i],&b[i]);max[i]=a[i]/b[i];//获取单个最大Vmin[i]=max[i];while(a[i]/min[i]==b[i]){min[i]--;}//获取单个最小Vmin[i]++;//循环出来的是不满足题意的,所以加一}n_min=1000000;//在所有最大的里面找最小的才能满足所有for(i=0;i<n;i++){if(max[i]<n_min){n_min=max[i];}}n_max=0;//在所有最小的里面找最大的for(i=0;i<n;i++){if(min[i]>n_max){n_max=min[i];}}printf("%d %d",n_max,n_min);//注意输出顺序return 0;
}

http://www.lryc.cn/news/333708.html

相关文章:

  • CSP201409T5拼图
  • mongoDB 优化(2)索引
  • 【2024系统架构设计】案例分析- 5 Web应用
  • 布隆过滤器详解及java实现
  • CloudCompare 点云工具
  • Linux 著名的sudo、su是什么?怎么用?
  • C语言分支语句
  • android 资源文件混淆
  • 注册接口和前置SQL及数据生成及封装
  • 鸿蒙实战开发-通过输入法框架实现自绘编辑框
  • 深度学习中的注意力模块的添加
  • Docker 部署开源远程桌面工具 RustDesk
  • intellij idea 使用git ,快速合并冲突
  • AcWing26. 二进制中1的个数。三种解法Java
  • 【ADB】常见命令汇总(持续更新)
  • 【递归与递推】数的计算|数的划分|耐摔指数
  • 企业案例:金蝶云星空集成钉钉,帆软BI
  • 简单设计模式讲解
  • 基于springboot的社区医疗服务系统
  • 影院座位选择简易实现(uniapp)
  • 调用飞书获取用户Id接口成功,但是没有返回相应数据
  • STM32 GPIO输入检测——按键
  • Rustdesk二次编译,新集成AI功能开源Gpt小程序为远程协助助力,全网首发
  • 面试(03)————多线程和线程池
  • 纯CSS实现未读消息显示99+
  • 【C++】C++ primer plus 第十二章--类和动态内存分配
  • 分类预测 | Matlab实现GWO-LSSVM灰狼算法优化最小二乘支持向量机数据分类预测
  • 使用PHP进行极验验证码动态参数提取与逆向分析
  • 43.1k star, 免费开源的 markdown 编辑器 MarkText
  • ArcGIS Pro怎么进行挖填方计算