#4747: C++ 為什麼我的程式碼會TLE(1S)


hchs9910739 (噢噢噢啦啦啦)

學校 : 國立清華大學
編號 : 15048
來源 : [118.166.220.35]
最後登入時間 :
2020-10-06 23:14:54

#include<iostream>
using namespace std;
main(){
       int y[1000];
       string a[1000];
       int x;
       while(1)
       {
               for(x=1;;x++)
               {
                            cin>>y[x];
                            if(y[x]==0)
                            {
                                       break;
                            }
               }
               for(int k=1;k<x;k++)
               {
                            if(y[k]%4==0&&y[k]%100!=0||y[k]%400==0)
                            {
                                    a[k]="a leap year";
                            }
                            else
                            {
                                    a[k]="a normal year";
                            }
                       cout<<a[k]<<endl;
               }
       }
system("pause");
return 0;
}

我不知道為什麼會TLE(1S)?

#4753: Re:C++ 為什麼我的程式碼會TLE(1S)


linishan (L)

學校 : 國立交通大學
編號 : 1090
來源 : [104.132.150.102]
最後登入時間 :
2019-05-10 19:57:54

#include
using namespace std;
main(){
       int y[1000];
       string a[1000];
       int x;
       while(1)
       {
               for(x=1;;x++)
               {
                            cin>>y[x];
                            if(y[x]==0)
                            {
                                       break;
                            }
               }
               for(int k=1;k               {
                            if(y[k]%4==0&&y[k]%100!=0||y[k]%400==0)
                            {
                                    a[k]="a leap year";
                            }
                            else
                            {
                                    a[k]="a normal year";
                            }
                       cout<               }
       }
system("pause");
return 0;
}

我不知道為什麼會TLE(1S)?

首先 system("pause") 拿掉

這以後去比賽 或是其他OJ 會給你CE的 (Compilation Error 編譯錯誤)

 

然後問題在於

照你這樣寫法 最外層的while迴圈不具任何意義

#4864: Re:C++ 為什麼我的程式碼會TLE(1S)


hchs9910739 (噢噢噢啦啦啦)

學校 : 國立清華大學
編號 : 15048
來源 : [118.166.220.35]
最後登入時間 :
2020-10-06 23:14:54

#include
using namespace std;
main(){
       int y[1000];
       string a[1000];
       int x;
       while(1)
       {
               for(x=1;;x++)
               {
                            cin>>y[x];
                            if(y[x]==0)
                            {
                                       break;
                            }
               }
               for(int k=1;k               {
                            if(y[k]%4==0&&y[k]%100!=0||y[k]%400==0)
                            {
                                    a[k]="a leap year";
                            }
                            else
                            {
                                    a[k]="a normal year";
                            }
                       cout<               }
       }
system("pause");
return 0;
}

我不知道為什麼會TLE(1S)?

首先 system("pause") 拿掉

這以後去比賽 或是其他OJ 會給你CE的 (Compilation Error 編譯錯誤)

 

然後問題在於

照你這樣寫法 最外層的while迴圈不具任何意義

我平常傳地都有拿掉system("pause")

但while的迴圈是要讓程式一直走下去

不要停

我想知道為什麼那個迴圈不具意義

我不懂

謝謝!

#4878: Re:C++ 為什麼我的程式碼會TLE(1S)


as89366 (你為什麼不問問神奇海螺呢?)

學校 : 不指定學校
編號 : 8256
來源 : [185.165.241.214]
最後登入時間 :
2025-05-31 12:33:50

你的while沒有終止條件,當然會形成無窮迴圈。
#5129: Re:C++ 為什麼我的程式碼會TLE(1S)


yuchiao0921 (我的字典沒有放棄)

學校 : 道明中學
編號 : 18267
來源 : [124.218.85.67]
最後登入時間 :
2017-12-09 04:26:44

印象中break只會跳出一層迴圈吧