这是一道大水题吧,无脑送分。但当时比赛时候却没做出来,今天又看了试着做了下,结果一下子答案就对了。
开心的不得了。
题目大意好理解,找出【n,m】区间内含有4或者38的数字,看总共有多少。当时做的时候写了好长好长,不知道
怎么处理既含有38又含有4的数字,今天可能灵气十足,几乎没有思考,直接就写出了处理的方法。既然是大水题,
不多BB,直接看代码吧。
#include<stdio.h>
int main()
{
int a,b,e,c,d,i,sum;
while(scanf("%d %d",&a,&b),a+b) //多组测试,a,b同为0时候结束,这里有个简单的技巧,后面写个a+b就可以实现。
{ 之前写的一直都是 a!=0||b!=0,显然这种写法已经被我嫌弃了;
sum=0;for(i=a;i<=b;i++)
{
e=i; //如果是一个循环的数需要在循环内参与运算,一定把它的值赋给一个变量,否则容
易出错。这里就是把循环数i的值赋给e,让e进行运算,之间的道理,自己好好想想,
应该可以想明白的;
while(e) //非零即真,进行循环;{
c=e%10; //这是要找出4;
d=e%100; //这是要找出38;
if(c==4||d==38)
{
sum++;
break; //如果符合判断,sum+1,跳出while循环,进行下一个for循环;
}
e/=10; //如果第一次没有找到4或38,让e除十取整,再进行while循环判断。如此往复;
}
}
printf("%d\n",sum);
}
return 0;
}