#include "stdio.h"
main()
{
long i,n,m,x=0,y;
for (i=1;i<=9;i++)
{
y=i;
for (n=0;n<=8;n++)
{x=x+y;
y=y*10+i;}
printf ("x=%d\n",x);}
}
你看一下这个,为什么错误了呢?
[此贴子已经被作者于2006-2-11 19:51:37编辑过]
----------------解决方案--------------------------------------------------------
呵呵 我刚才自作聪明的加了点东西,可能是算法的问题.你的输出格式应该是"%ld"
----------------解决方案--------------------------------------------------------
楼上,感谢.
我的编程是对,就是输出哪个l少了...狂晕.
----------------解决方案--------------------------------------------------------
晕...不对?
只有 1+11+111+.....这个是对的,其他全错??
----------------解决方案--------------------------------------------------------
#include "stdio.h"
main()
{
long i,n,m,x,y;
for (i=1;i<=9;i++)
{
y=i;
x=0;
for (n=0;n<=8;n++)
{x=x+y;
y=y*10+i;}
printf ("x=%ld\n",x);}
}
嘻嘻,对了
----------------解决方案--------------------------------------------------------
int main()
{
int i=0;
long c=0,x=0;
for(;i<9;i++,c+=(x=x*10+1));
for(i=1;i<10;printf("%ld\n",c*i++));
}
----------------解决方案--------------------------------------------------------
楼上的return 0;
[此贴子已经被作者于2006-2-11 21:33:32编辑过]
----------------解决方案--------------------------------------------------------
本来默认有的,但是copy上来的时候不知道怎么少了一行
所以倒数第二行是空的。
----------------解决方案--------------------------------------------------------
以下是引用神vLinux飘飘在2006-2-11 20:40:00的发言:
int main()
{
int i=0;
long c=0,x=0;
for(;i<9;i++,c+=(x=x*10+1));
for(i=1;i<10;printf("%ld\n",c*i++));
}
比我简短多了,佩服.
----------------解决方案--------------------------------------------------------
那是因为我的算法和你们的不一样
我是先算出1+11+111+.....+111111111 = x
然后剩下的2+22+222+.....+222222222 = 2*(x)
以次类推
----------------解决方案--------------------------------------------------------