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


hchs9910739 (噢噢噢啦啦啦)

學校 : 國立清華大學
編號 : 15048
來源 : [118.166.220.35]
最後登入時間 :
2020-10-06 23:14:54
d070. 格瑞哥里的煩惱 (0 尾版) -- 板橋高中教學題 | From: [122.120.45.183] | 發表日期 : 2011-01-13 17:47

#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
d070. 格瑞哥里的煩惱 (0 尾版) -- 板橋高中教學題 | From: [118.168.128.162] | 發表日期 : 2011-01-15 12:19

#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
d070. 格瑞哥里的煩惱 (0 尾版) -- 板橋高中教學題 | From: [122.120.50.64] | 發表日期 : 2011-02-09 19:56

#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
來源 : [123.194.37.84]
最後登入時間 :
2017-10-08 23:51:25
d070. 格瑞哥里的煩惱 (0 尾版) -- 板橋高中教學題 | From: [203.64.161.123] | 發表日期 : 2011-02-16 12:50

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


yuchiao0921 (我的字典沒有放棄)

學校 : 道明中學
編號 : 18267
來源 : [124.218.85.67]
最後登入時間 :
2017-12-09 04:26:44
d070. 格瑞哥里的煩惱 (0 尾版) -- 板橋高中教學題 | From: [114.38.111.11] | 發表日期 : 2011-05-22 07:09

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