zoukankan      html  css  js  c++  java
  • 6.4验证角谷猜想

    角谷猜想内容:任意个自然数,若为偶数则除以2,若为奇数则乘以3加1,得到一个新的自然数,按照这样的计算方法计算下去,若干次后得到的结果必然为1.写程序对角谷猜想正确性验证。

    思路一:

    #include<iostream>
    using namespace std;
    
    int main() {
    	int n;
    	cin>>n;
    	while(n!=1) {
    		if(n%2==0)
    			{
    				n=n/2;
    				cout<<n<<" ";	
    			}
    			
    		else {
    			n=n*3+1;
    			cout<<n<<" ";
    		}
    			
    	}
    	
    	return 0;
    }
    

      

    思路二:设定一个阈值以规定循环的上限次数,如果循环在阈值范围内结束,则说明该数在给定范围内符合角谷猜想;如果超过了预先设定的阈值,则说明要调整阈值的选取。这种方法只能验证角谷猜想的正确性,而不能验证其错误性,因为无论怎么样选取阈值,该阈值都是有穷大的数。设置循环上限(阈值)的目的只是为了防止由于验证内容的不正确而导致程序陷入死循环当中。

    #include<iostream>
    using namespace std;
    
    void provejiaogu(int n) {
    	int count=1;
    	while(n!=1 && count<=1000) {
    		if(n%2==0)
    			{
    				n=n/2;
    				cout<<n<<" ";	
    			}
    			
    		else {
    			n=n*3+1;
    			cout<<n<<" ";
    		}
    		
    		count++;
    	}
    	if(count<1000 && n==1)
    		cout<<endl<<"yes!"<<endl;
    }
    int main() {
    	int n;
    	cin>>n;
    	provejiaogu(n);
    	return 0;
    }
    

      

    拥抱明天! 不给自己做枷锁去限制自己。 别让时代的悲哀,成为你人生的悲哀。
  • 相关阅读:
    ie 标题写入问题
    预览图片
    form表单submit事件
    SpringGraph 20101030 11:08[转]
    flexunable to transcode image
    navicate导入和导出数据库(转)
    Flex转自新浪微博
    zk中的Datebox中得到Timestamp
    反向代理
    flash builder sdk 4[转自IYeye]
  • 原文地址:https://www.cnblogs.com/dd2hm/p/6811671.html
Copyright © 2011-2022 走看看