解题思路:     以七天为一个周期,除于判断需要几个周期,取余判断剩余题数完成需要天数是五天内还是五天外,最后将天数相加。


注意事项:    第一眼想到用循环,写下来会发现超时了


超时代码:

#include<stdio.h>

int main()

{

long long a,b,n,s=0;

int flat=1,fflat=0;    //flat表示周一到周天,fflat表示周期数

scanf("%lld%lld%lld",&a,&b,&n);

while(s<n)            // s为完成题数

{

if(flat<=5) s=s+a;

else s=s+b;

flat++;

if(flat==8){

flat=flat-7;

fflat++;

}

}

printf("%lld",fflat*7+flat-1);

return 0;

}


上面的代码在c语言网上会超时,在洛谷里满分



参考代码如下:

#include<stdio.h>

int main()

{

long long a,b,n,yushu=0,ss=0,s1=0;

scanf("%lld%lld%lld",&a,&b,&n);

ss=n/(5*a+2*b);         //ss是几个周期

yushu=n%(5*a+2*b);

if(yushu<=(5*a))             //剩余题数可以在五天内完成

{

if(yushu%a==0) s1=yushu/a;

else s1=yushu/a+1;

}

else{                                           //剩余题数五天完不成

if((yushu-5*a)%b==0) s1=(yushu-5*a)/b+5;

else s1=(yushu-5*a)/b+1+5;

}

printf("%lld",ss*7+s1);        //一个周期七天

return 0;

}


点赞(0)
 

0.0分

5 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 2 条评论

坚果 2年前 回复TA
为什么要long long 型的,int为什么不可以呢