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;
    }
    

      

    拥抱明天! 不给自己做枷锁去限制自己。 别让时代的悲哀,成为你人生的悲哀。
  • 相关阅读:
    后端架构师技术图谱
    互联网经典技术架构
    软件开发知识体系(二)
    软件开发知识体系(一)
    HSF源码剖析
    分库分表的几种常见形式以及可能遇到的难题
    iOS 关于MVC和MVVM设计模式的那些事
    MVC与MVP简单对比
    MVC、MVP、MVVM 模式
    Learning Android ActionBar
  • 原文地址:https://www.cnblogs.com/dd2hm/p/6811671.html
Copyright © 2011-2022 走看看