其实没有必要算k的值,因为只要输出个数即可的话,那么末尾为6是肯定的。那么只需要判断从1000到9999的前四位数能被3整除的有多少个就OK了。6可以被3整除的,那么就计算前面四位数,把4位数字相加如果能被3整除哪么就满足条件。
main()
{
int i,j,k,m,count;
m=0;
for(i=1000;i<=9999;i++)
{k=10*i+6;//其实没什么用
for(j=i;j<=0;j++){//将4位数字相加
m+=j%10;
}
if((m+6)%3==0 count++;
}
printf("%d",count);
}
#include
#include
int main()
{
int i,cnt=0;
for(i=1000;i<10000;i++)
if(i%3==0)
cnt++;
printf("\n%d\n",cnt);
system("pause");
return 0;
}
只要判断前四位1000~9999就可以了,甚至可以改成for(i=1002;i<10000;i+=3)cnt++;这样计算量更少,结果是3000。。。
其实不用加六,肯定能被三整除!
#include
#include
int main()
{
int i,cnt;
for(i=1000;i<9999;i++)
if(i%3==0)
cnt++;
printf("cnt=%d",cnt);
system("pause");
}
#include
void main()
{
int n=10006;
while(n<=100000&&n>=10000){
if(n%3==0)printf("%d ",n);
n+=10;
}
}
利用循从10006-99996,充分利用条件进行筛选....