习题2.3-数列求和-加强版-编程题
程序员文章站
2022-06-07 11:45:10
...
解题代码
#include<stdio.h>
#define Max 100000
int main()
{
int i, A, N, t=0;
scanf("%d %d", &A, &N);
char a[Max+1] = { 0 };
if (N == 0) {
printf("0");
return 0;
}
for (i = 0; i < N; i++) {
t += (N-i)*A;
a[i] = t % 10;
t = t / 10;
}
if (t) {
a[i] = t;
N++;
}
for (i = N-1; i >= 0; i--) {
printf("%d", a[i]);
}
return 0;
}
测试结果
问题整理
1.位数太大以至于不能用整型存储,只能用数组按位存储。
2.按位存储的过程中,每位相加后有可能是很多位数。
3.最终sum的位数一定不会大于N+1位。