第1个回答 2013-05-21
你这个算法写得有点小问题吧,首先,求这一类问题的思路是,先找9,99,999...(pow(10,i),然后通过a*(pow(10,i))/9算任何一个a,aa,aaa....
int main(void)
{
long int sum=0;//注意int最高32位,所以最大只能表示2^31,如果你输入的数据很大,那么求的和有可能越界,所以用long int 4个字节
int x[5];
int n=0;
int a=0;
scanf("%d %d",&n,&a);//输入的时候加入空格
int i=0;
int res=n;
for(;n>=1&&i<res;n--,i++)//注意,最后n=1,而不是0,因为从1-n,共n个,错误在这里,而且两个循环是同时的,而不是嵌套关系,如果嵌套的话,每次里面循环完了,x[i]的每一个值都是一样的,最后加出来的是最后一个aaaaa*5的结果,而不是所求的
{
x[i]=a*((pow(10,n))-1)/9
sum+=x[i];
}
printf("%d\n",sum);
}
第2个回答 2013-05-21
int a,n,s=0,i,foo=0;
//未做错误处理
scanf("%d,%d",&a,&n);
for(i=0;i<n;i++)
{
foo = foo * 10 + a;
s += foo;
}
printf("%d\n",s);
return 0;