题目:求 π(i*a^i),其中 1<=i<=n。
分析:模拟、大整数。大整数加法,大整数和小整数乘法。
#include <iostream>
#include <cstdlib>
#include <cstring>
#include <stdio.h>
using namespace std;
int a[ 201 ];
int s[ 201 ];
int main()
{
int N,A;
while ( cin >> N >> A ) {
memset( s, 0, sizeof(s) );
memset( a, 0, sizeof(a) );
a[0] = A; s[0] = A;
for ( int i = 2 ; i <= N ; ++ i ) {
for ( int j = 0 ; j <= 200 ; ++ j )
a[j] *= A;
for ( int j = 0 ; j <= 200 ; ++ j ) {
a[j+1] += a[j]/10;
a[j] %= 10;
}
for ( int j = 0 ; j <= 200 ; ++ j )
s[j] += a[j]*i;
for ( int j = 0 ; j <= 200 ; ++ j ) {
s[j+1] += s[j]/10;
s[j] %= 10;
}
}
int end = 200;
while ( end >= 1 && !s[ end ] ) end --;
while ( end >= 0 ) printf("%d",s[end --]);
printf("\n");
}
return 0;
}