标题:逢七过
一群人围坐成一圈玩报数游戏
游戏规则是:从1开始报数若遇到7的倍数或者个位为七的数则由击掌代替,若犯错则要受到惩罚。
#include<stdio.h>
int main()
{
int n,cnt=0;
int sum=0;
scanf("%d",&n);
if(n>=70)//判断n是否大于70,如果大于70,就将其在大于七十的部分每七十个数一个周期击掌16次
{
sum=n/70*16;//以70为周期,计算相应的个数。
cnt+=sum;
}
for(int i=1;i<=n%70;i++)//计算剩下n%70的数字中,是否满足题意
{
if(i%7==0||i%10==7)//判断是否满足题意
{
cnt++;
}
}
printf("%d",cnt);//输出满足题意的个数
return 0;
}
由于当输入的数的范围为0到10的七次方时,计算机容易超时。
由题意可知每70次一个循环,需要击16次掌。
则由此减少计算机的运算次数
心得:
1.减少计算机循环次数可以减少计算机编译速度
2.尽量使代码简洁