zhangyao2010 @ 2024-01-29 15:47:34
#include<bits/stdc++.h>
using namespace std;
int main(){
int n,m;
cin>>n;
int j=n;
int i=1;
while(i<=j){
if (j%2==0){
m=j/2;
cout <<j<<"/2="<<m<<endl;
j=m;
}
if (j%2!=0){
j=j*3+1;
cout<<n<<"*3+1="<<j<<endl;
}
i++;
}
cout <<j<<"/2=1"<<endl;
cout <<"End"<<endl;
return 0;
}
by 001_zip @ 2024-01-29 15:54:35
有必要吗?
by 001_zip @ 2024-01-29 15:55:23
我习惯用for
by penguin_is_cool @ 2024-01-29 15:56:27
@zhangyao2010 十年OI一场空,不开 long long
见祖宗
by luoyukai @ 2024-01-29 15:59:21
特判 i=1 的情况
by liuyilan @ 2024-01-31 13:13:06
@zhangyao2010
1.要开long long型 2.其次如果输入为1,那么直接就可以 End
修改方法
1.让n直接带入运算,可以节省时间与内存 2.把除n以外全部变量删除(包括定义与参与计算部分),直接用n带入循环即可
3.把循环条件改为n!=1
4.把循环外最后输出j的那一部分删除就可以了