先发这了a+aa+aaa+...
下面的代码是得到正常结果的反向输出,n可以是个很大的数,只要最后的carry不溢出int范围就行,现在的问题是不用数组,再逆向输出,我的想法是先算数据总长度,接着再算一遍,但这次从末尾先前输出,用到\b\b,但考虑到还有长度可能超过屏幕宽度,还有换行的问题,于是就把那部分注释掉了.
你有别的什么好想法吗?
#include<stdio.h>
int main()
{
int i,a,n,carry=0,temp,len=0;
scanf("%d%d",&a,&n);
for(i=n;i>0;i--)
{
temp=a*i+carry; //从个位数开始一位一位输出
carry=temp/10; //进位
len++;
printf("%d",temp%10);
}
while(carry>0)
{
len++;
printf("%d",carry%10);
carry/=10;
}
//printf("%d",len);
//printf("%*c",len-1,0);
//for(i=n;i>0;i--)
//{
//temp=a*i+carry;
//carry=temp/10;
//printf("%d",temp%10);
//printf("\b\b");
//}
//printf("%d\n",carry);
//while(carry>0)
//{
//printf("%d",carry%10);
//printf("\b\b");
//carry/=10;
//}
return 0;
}