???TLE???

B2077 角谷猜想

Ymt2014 @ 2024-12-28 11:08:12

怎么回事???

```cpp #include <bits/stdc++.h> #include <iomanip> using namespace std; typedef long long ll; const int INF = 1061109567; void YMT(){ int n; cin >> n; while (n!=1){ if (n % 2 == 1){ cout << n << "*3+1=" << n*3+1<<endl; n = n*3+1; } else{ cout << n << "/2=" << n/2<<endl; n = n/2; } } cout<<"End"; } int main(){ int T=1; //cin >> T; while(T--) YMT(); return 0; } ```

by YuYuanPQ @ 2024-12-28 11:12:34

@Ymt2014 改成 long long 试试?


by tangweiren @ 2024-12-28 11:26:22

#include<iostream>
using namespace std;
int main(){
    long long n;
    cin>>n;
    for(bool a=1;a==1;){ 
        if(n==1){
            cout<<"End";
            return 0;
        }
        else{
            if(n%2==0){
                cout<<n<<"/"<<2<<"="<<n/2<<endl;
                n=n/2;
            }
            else{
                cout<<n<<"*"<<3<<"+"<<"1"<<"="<<n*3+1<<endl; 
                n=n*3+1; 
            }       
        }
    }
    return 0;
}

by liketaem @ 2024-12-28 11:27:15

@YuYuanPQ TLE为什么要改long long


by Rigil_Kent @ 2024-12-28 11:32:21

@Ymt2014

读题,输入只有 1 个正整数 N


by YuYuanPQ @ 2024-12-28 11:32:28

@liketaem 首先,你应该知道的是:如果溢出了,会引发 RE。

然后就是 RE 能引发很多错误,TLE、MLE 等。

这个 TLE 应该是 RE 导致的。

所以要开 long long


by YuYuanPQ @ 2024-12-28 11:33:30

@Ymt2014

为什么说 RE 能引发很多错误?

因为实践出真知。


by Ymt2014 @ 2024-12-28 12:57:59

谢谢大佬!AC啦!


|