#include<bits/stdc++.h> //万能头文件 using namespace std; int main(){ int z,n; cin>>n; while(n>1){ if(n%2==0){ //如果是偶数 z++; n/=2; } else{ //如果不是偶数,就一定奇数 z++; n=n*3+1; } } cout<<z; return 0; //完美结束 }
这道题就是一个冰雹猜想。
冰雹猜想是指:一个正整数x,如果是奇数就乘以3再加1,如果是偶数就析出偶数因数2ⁿ,这样经过若干个次数,最终回到1。
无论这个过程中的数值如何庞大,就像瀑布一样迅速坠落。而其他的数字即使不是如此,在经过若干次的变换之后也必然会到纯偶数:16-8-4-2-1的循环。据日本和美国的数学家攻关研究,在小于7*10^11的所有的正整数,都符合这个规律。
全部评论
(0) 回帖