大家来讨论:^_^ ,两个程序
个位数为6,且能被3整除的五位数共有多少个?方法一:
main( )
{ int a,b,c,d,i;
i=0;
for(a=1;a<=9;a++)
for(b=0;b<=9;b++)
for(c=0;c<=9;c++)
for(d=0;d<=9;d++)
{
if((a+b+c+d+6)%3==0)
i++;
}
printf("%d",i);
}
二:
main( )
{ int a,b,c,d,i;
i=0;
for(a=1;a<=9;a++)
for(b=0;b<=9;b++)
for(c=0;c<=9;c++)
for(d=0;d<=9;d++)
{
if((a*10000+b*1000+c*100+d*10+6)%3==0)
i++;
}
printf("%d",i);
}
两个程序的运行结果一个是3000,一个是30001。????
[此贴子已经被作者于2007-4-12 14:21:17编辑过]
----------------解决方案--------------------------------------------------------
main( )
{ int a,b,c,d,i;
i=0;
for(a=1;a<=9;a++)
for(b=0;b<-9;b++) //这里是b<-9吗? 这样的话 -9以下的负整数不都合条件了吗?!
for(c=0;c<=9;c++)
for(d=0;d<=9;d++)
{
if((a*10000+b*1000+c*100+d*10+6)%3==0)
i++;
}
printf("%d",i);
}
----------------解决方案--------------------------------------------------------
我用VS2005测试
所得结果都是3000
请你重新测试下
for(b=0;b<-9;b++)
写错了
----------------解决方案--------------------------------------------------------
#include<stdio.h>
int main(void)
{
int i = 0;
int cnt = 0;
for (i = 1000; i < 10000; ++i)
{
if ((i * 10 + 6) % 3 == 0)
{
++cnt;
}
}
printf("%d", cnt);
return 0;
}
一个循环简洁些吧
----------------解决方案--------------------------------------------------------
你是想让讨论什么呢?
----------------解决方案--------------------------------------------------------
两种方法应该都是对的啊,但为什么结果不一样呢?
----------------解决方案--------------------------------------------------------
两个都是3000啊。。。。
----------------解决方案--------------------------------------------------------
我已经运行了n次了
tc运行的结果,一个是3000,另一个是3001
----------------解决方案--------------------------------------------------------
我用C-FREE运行的。。。都是3000
----------------解决方案--------------------------------------------------------
我换了win-tc ,运行结果还是不一样,晕
----------------解决方案--------------------------------------------------------