2 条题解

  • 1
    @ 2023-9-23 17:05:54
    #include<stdio.h>
    int main()
    {
    	   int n;
    	   while(scanf("%d",&n)!=EOF)
    	    {;
    		int count=0;
    		while(1)
    		{
    		if(n%2!=0)
    		{
    		n=3*n+1;
    		count++; 
    		}
    		if(n%2==0)
    		{
    		n=n/2;
    		count++;
    		}
    		if(n==1)
    		{
    			printf("%d\n",count%3);
    			break;
    		}
    		}
          
    		}
    	
    	}
    
    
    • 0
      @ 2025-1-1 17:36:33
      #include<stdio.h>
      #include<iostream>
      using namespace std;
      int main()
      {
      	int q=1000;
      	while(q--)
      	{
      		int n;
      		cin>>n;
      		int count=0;
      		while(n!=1) 
      		{
      		if(n%2==0)
      		{
      		n/=2;	 
      		}else{
      		n=3*n+1;
      		}
      		count++;
      	}
      	cout<<count%3<<endl;
      	}            
      	return 0;
      不知道会进行多少次所以我q=1000去循环,但这直接死循环里面去了,下面大佬的
      
      while(scanf("%d",&n)!=EOF)
      能很好的避免问题。你可以在我给的代码把输入n的方式改改,就是一个好的题解喽😄 
      
      
      
      • 1

      信息

      ID
      59
      时间
      1000ms
      内存
      128MiB
      难度
      8
      标签
      (无)
      递交数
      2668
      已通过
      496
      上传者