算法
#include<stdio.h>int main()
{
int i,count=0;
for(i=1;i<=2020;i++)
{
if((i%10)==2)//对个位是否为2进行检查
count++;
else if(19<(i%100)&&(i%100)<30)//对十位是否为2进行检查
count++;
else if(199<(i%1000)&&(i%1000)<300) //同样百位
count++;
else if(1999<(i%10000)&&(i%10000)<3000) //千位检查
count++;
}
printf("%d",count);
return 0;
}
//我这个是要求从1到2020,一共有多少个字符2,但是结果少了几十,正确答案是624.我这个是if else有问题吗? 你漏了个十百千位同时有两个及其以上个2的情况
自己先改改 for循环的语句中一个成立就不会执行下一个了,所以会少。 昨非 发表于 2020-12-9 19:06
你漏了个十百千位同时有两个及其以上个2的情况
自己先改改
漏倒是没有漏,主要是我把if else语句弄错了,我记得我昨天专门试了一下if else ,结果得出了错误的答案,我以为 if else if else if 这些会每一个都判断一次, 严凯 发表于 2020-12-9 19:31
漏倒是没有漏,主要是我把if else语句弄错了,我记得我昨天专门试了一下if else ,结果得出了错误的答案 ...
?就是漏了啊{:10_277:} 昨非 发表于 2020-12-9 19:33
?就是漏了啊
我的我的,我理解能力有限。。。。。。。{:10_285:}
页:
[1]