2 条题解

  • 1
    @ 2024-2-14 19:21:25

    世界上最好的题解😄

    #include<bits/stdc++.h>
    using namespace std;
    int main(){
    	long long n;
    	cin>>n;
    	while(n>1){
    		if(n%2==0){
    			cout<<n<<"/2="<<n/2<<endl;
    			n=n/2;
    		}
    		else{
    			cout<<n<<"*3+1="<<3*n+1<<endl;
    			n=3*n+1;
    		}
    	}
    	cout<<"End";
    	return 0;
    }
    

    看完别忘了点赞呦👀️

    • 0
      @ 2023-12-25 15:57:16

      基础知识训练题。无fu-ck说。

      但是题库这里应该搞错乱了测试数据,无论如何都有2题TLE。百思不得姐,最后把n换成longlong通过。

      猜想是测试数据中有N超过int上限的数据,这样溢出后被认作负数,while循环永远无法结束。

      #include <bits/stdc++.h>
      using namespace std;
      long long n;
      int main() {
      	cin>>n;
      	while (n!=1) {	  
      		if (n%2!=0) { 
      			cout<<n<<"*3+1="<<n*3+1<<endl;
      			n=n*3+1;
      		} else { 
      			cout<<n<<"/2="<<n/2<<endl;
      			n=n/2;
      		}
      	}
      	cout<<"End"<<endl;
      	return 0;
      }
      
      • 1

      信息

      ID
      6889
      时间
      1000ms
      内存
      128MiB
      难度
      1
      标签
      (无)
      递交数
      70
      已通过
      19
      上传者