题解 P1760 【通天之汉诺塔】

QwQ,来一发

不用python!不用python!!不用python!!!

(其实是我不会……)

C++高精度思路:

遵循ans=2^n-1的规律,用高精度乘单精度(数据太H2O,不用快速幂~)

代码如下:

#include<bits/stdc++.h> 
using namespace std;
int a[100000];
int main()
{
	int n;
	cin>>n;
	a[0]=1;
	int l=1;
	for(int i=0;i<n;i++)
	{
		for(int j=0;j<l;j++) a[j]*=2;//先预处理乘2
		for(int j=0;j<l;j++)
		{
			a[j+1]+=a[j]/10;//进位
			a[j]%=10;//取后一位
		}
		if(a[l]>0) l++;
	}
	a[0]--;//别忘了减一
	for(int i=l-1;i>=0;i--) cout<<a[i];
	return 0;
}

再见喽~

猜你喜欢

转载自www.cnblogs.com/oierscw/p/12548436.html