我是靠谱客的博主 陶醉小土豆,最近开发中收集的这篇文章主要介绍2022第十三届蓝桥杯第三题刷题统计学习心得,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

     首先按照题目所说小明周一至周五每天练a道题,周六和周日每天练b道题,并且是从周一开始训练,那么我们可以设置两个内循环,第一个内循环是周一至周五的练习量并记录天数,第二个内循环则是周六和周日的练习量并记录天数,注意每记录一次总练习量就需要判断是否大于所计划的练习量,当大于或等于所计划的量时,我们可以写return 0直接结束程序。因为两个内循环之间是要形成一个环,就是说从第二个内循环就要转回到第一个内循环的,因此我们可以建立一个while循环,条件只要不设置为0就可以了。

     这道题对于菜鸡的我来说属实有点难,修改了两三个致命错误才成功(逻辑错误),所以写代码时一定要注意前后的逻辑关系,特别是思维逻辑的严谨性。

以上就是这道题的学习心得啦,如果有什么问题大家可以提一提,而且大家要是有更好的方法也可以提一提啊!!!

#include <stdio.h>
int main()
{
int i,j,a,b,n,sum=0,day=0;
scanf("%d %d %d",&a,&b,&n);
while(1)
{
for(i=1;i<=5;i++)
{
sum+=a;
day++;
if(sum>=n)
{
printf("%d",day);
return 0;
}
}
for(j=6;j<8;j++)
{
sum+=b;
day++;
if(sum>=n)
{
printf("%d",day);
return 0;
}
}
}
}

以下为改进版,原因:以上用的方法在测试个别案例时超时,说明并非为最佳解法。

直接上代码 

#include<stdio.h>
int main()
{
long long int n,i,j,a,b,y,m,day=0;
scanf("%lld%lld%lld",&a,&b,&n);
m=n/(a*5+b*2);
y=n%(a*5+b*2);
while(1)
{
for(i=1;i<=5&&y>0;i++)
{
day++;
y-=a;
}
if(y<=0)
{
printf("%lld",day+7*m);
return 0;
}
for(j=6;j<=7&&y>0;j++)
{
day++;
y-=b;
}
if(y<=0)
{
printf("%lld",day+7*m);
return 0;
}
}
}

最后

以上就是陶醉小土豆为你收集整理的2022第十三届蓝桥杯第三题刷题统计学习心得的全部内容,希望文章能够帮你解决2022第十三届蓝桥杯第三题刷题统计学习心得所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(82)

评论列表共有 0 条评论

立即
投稿
返回
顶部