这个想法是每一个数字与每一位数字(可以理解成我只算个位数字,然后通过进位D来改变比他优先级别高的数字),把高精度算法的 % 1000000 简化成 %10 看起来就很简单吧 是不是~
具体代码如下:
#include<iostream>
using namespace std;
int add(int a[], int sum[])
{
int d = 0;
int i;
for( i = 1; a[i] != 0; i++)
{
sum[i] = sum[i] + a[i] + d;
d = sum[i] / 10;
sum[i] = sum[i] % 10;
}
while(d != 0)
{
sum[i] = sum[i] + d;
d = sum[i] / 10;
sum[i] = sum[i] % 10;
i ++;
}
}
int main()
{
//int a[256] = {0};
//int sum[256] = {0};
int n;
while(cin >> n)
{
int a[256] = {0};
int sum[256] = {0};
for(int i = 1; i <= n; i++)
{
a[i] = 2;
add(a, sum);
}
for(int i = n; i >= 1; i--)
cout << sum[i];
cout << endl;
}
}