对于任意大于1的自然数你,若n为奇数,则n变为3n+1,否则变为你的一半。经过多次变换,一定会使n变为1。
#include <iostream>
using namespace std;
int main(int argc, char const *argv[])
{
int n2, count = 0;
scanf("%d",&n2);
long long n = n2;//长整型防止数值越界
while(n>1){
if (n%2==1) n=n*3+1;
else n/=2;
cout<<n<<endl;
count++;
}
printf("%d",count);
return 0;
}
网友评论