总结:大数相加,用数组模拟。注意最高位有进位就行了。。。。
附上代码一枚:
#include <stdio.h>
#include <string.h>
int main()
{
int b[10005];
int a, n;
int i, j;
int flag;
while(~scanf("%d %d",&a, &n))
{
memset(b,0,sizeof(b));//初始化数值
for(i = 0;i < n;i ++)
{
b[i] = a;
}
flag = 0;
int t, k;
for(i = 0;i < n ;i ++)
{
k = n - i - 1;//因为已经在初始化里赋值一次, 所以此处少算一次
t = a*k + flag + b[i];
b[i] = t % 10 ;//余数放到数组里
flag = t / 10;//进位
}
int m;
if(flag)
{b[i] = flag;m = i;}//判断是否在最高位进位
else
m = i - 1;
for(i = m;i >= 0;i --)
printf("%d",b[i]);//从最高位输出
printf("\n");
}
return 0;
}