竞赛讨论区 > 分享一下经验
头像
牛客919095335号
编辑于 2020-05-08 10:57
+ 关注

分享一下经验

#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) 回帖
加载中...
话题 回帖

本文相关内容

等你来战

查看全部

热门推荐