高精度2的n次幂(这个程序想了还是挺久的)
复习了关于一个数的位数怎么估取
另外在我看来这个高精度算法就是:首先先从低位开始存,用循环每次只算一位,详细在注释里,最后要记得判断是否要在进位
#include<iostream>
using namespace std;
const int N = 3010;
int main()
{
int a[N] = {1};
int n;
int m = 1;
cin >> n;
for(int i = 0; i < n; i++)//算n次仅进行n次循环
{
int t = 0;
for(int j = 0; j < m; j++)//大循环结束一次后得到一个新的数值,我们在用这个循环逐个计算每一位
{
t += a[j] * 2;
a[j] = t % 10;
t = t / 10;
}
if (t) a[m++] = 1;//最后算完,如果还有进位,也要存,因为乘2,他最多是得到十几,故进位1
}
for(int i = m -1; i >= 0; i--)
{
cout << a[i];
}
return 0;
}