题解 B2077 【角谷猜想】
题解
考虑使用
-
当
n\equiv 1\pmod 2 时,根据题面上的格式输出,并让n\gets 3\times n+1 ; -
当
n\equiv 0\pmod 2 时,同样地,根据题面上的格式输出后令n\gets n\div 2 。
最后使用 puts("End") 。
在 C++ 的表达式的计算中,它是先计算完表达式的值后再返回的。特别地,对于赋值语句(例如 t=3*n+1 ),那么它会先将
参考代码
#include<bits/stdc++.h>
#define up(l,r,i) for(int i=l,END##i=r;i<=END##i;++i)
#define dn(r,l,i) for(int i=r,END##i=l;i>=END##i;--i)
using namespace std;
typedef long long i64;
const int INF =2147483647;
int n,t;
int main(){
scanf("%d",&n); while(n!=1){
if(n%2==1) printf("%d*3+1=%d\n",n,t=n*3+1);
else printf("%d/2=%d\n",n,t=n/2);
n=t;
}
puts("End");
return 0;
}