思路
进题扫一眼题目描述,可以写成这样:
是不是很眼熟?这不就是角谷猜想嘛,但它不是让我们求步数果,而是求结果。它给了步数,求结果那就要倒推,第二个样例给了 P 最大时,也就是 1000 输出的结果 1789997546303,我们就用这个结果往前推,带入角谷猜想的运算过程,就可以了。记得开 long long
。
代码
#include<iostream>
using namespace std;
long long a[1010];
int main()
{
int p;
cin>>p;
a[1000]=1789997546303;
for(int i=999;i>=p;i--){
if(a[i+1]%2==1) a[i]=a[i+1]*3+1;
else a[i]=a[i+1]/2;
}
cout<<a[p];
return 0;
}
标签:1789997546303,nikkei2019ex,题解,long,int,步数
From: https://www.cnblogs.com/zjh114/p/17534161.html