回复 26# 的帖子
呵呵,我只是写了让楼主容易理解而已,在说,这样的程序,实际上没有什么用处,还不是考考你的程序思路而已,数值大小,我想应该不是这道题的关键问题吧
//s(n)=a+aa+aaa+aaaa.... #include <stdio.h> #include <stdlib.h> short va[10000] = {0}, vb[10000] = {0}, blast = 1; int main(void) { int i, n, a[4]; scanf("%d%d", &n, a); for (i = 1; i < 4; i++) a[i] = a[i-1] * 10 + a[0]; for (i = 0; i < n; i++) { int tmp = i / 4, j; va[tmp] = a[i%4]; if (blast < tmp) blast = tmp; for (j = tmp = 0; j <= blast; j++) { tmp += va[j] + vb[j]; vb[j] = tmp % 10000; tmp /= 10000; if (j == blast && tmp != 0) blast++; } } printf("%hd", vb[blast]); while (blast) printf("%04hd", vb[--blast]); putchar('\n'); return 0; }