#7925: 此題的最快速解法為何


ZJOJSFUS (ZJOJSFUS)

學校 : 國立臺灣大學
編號 : 30923
來源 : [114.44.64.105]
最後登入時間 :
2022-06-19 03:11:00
a244. 新手訓練 ~ for + if -- 新手訓練系列 ~ 1 | From: [219.80.136.15] | 發表日期 : 2013-07-08 22:07

個人用c++, 44ms AC

cin, for迴圈跑 switch

想請問此題如何寫得更快

 
#9211: Re:此題的最快速解法為何


linhunghsiang (呆瓜)

學校 : 新北市立中和高級中學
編號 : 42763
來源 : [203.121.231.227]
最後登入時間 :
2021-03-17 22:35:58
a244. 新手訓練 ~ for + if -- 新手訓練系列 ~ 1 | From: [203.121.231.213] | 發表日期 : 2014-09-21 00:30

#include <iostream>

#include <cstdlib>

#include <ctime>

#include <string>

 

using namespace std;

 

int main(){

int i=0;

cin>>i;

 

             while(i>=1){

             i-=1;

             long long int x,y;

             int z;

             cin>>z;

             cin>>x;

             cin>>y;

             

                         if(z==1){

                                 cout<<x+y<<"\n";

                                 }

                         else if(z==2){

                                 cout<<x-y<<"\n";

                                 }

                         else if(z==3){

                                 cout<<x*y<<"\n";

                                 }

                         else if(z==4){

                                 cout<<x/y<<"\n";

                                 }

                         }

 

return 0;

 

}

 
 
44ms ^o^ 
 
#9212: Re:此題的最快速解法為何


linhunghsiang (呆瓜)

學校 : 新北市立中和高級中學
編號 : 42763
來源 : [203.121.231.227]
最後登入時間 :
2021-03-17 22:35:58
a244. 新手訓練 ~ for + if -- 新手訓練系列 ~ 1 | From: [203.121.231.213] | 發表日期 : 2014-09-21 00:30

個人用c++, 44ms AC

cin, for迴圈跑 switch

想請問此題如何寫得更快

#include <iostream>

#include <cstdlib>

#include <ctime>

#include <string>

 

using namespace std;

 

int main(){

int i=0;

cin>>i;

 

             while(i>=1){

             i-=1;

             long long int x,y;

             int z;

             cin>>z;

             cin>>x;

             cin>>y;

             

                         if(z==1){

                                 cout<<x+y<<"\n";

                                 }

                         else if(z==2){

                                 cout<<x-y<<"\n";

                                 }

                         else if(z==3){

                                 cout<<x*y<<"\n";

                                 }

                         else if(z==4){

                                 cout<<x/y<<"\n";

                                 }

                         }

 

return 0;

 

}

44ms ^o^ 



 
#9213: Re:此題的最快速解法為何


linhunghsiang (呆瓜)

學校 : 新北市立中和高級中學
編號 : 42763
來源 : [203.121.231.227]
最後登入時間 :
2021-03-17 22:35:58
a244. 新手訓練 ~ for + if -- 新手訓練系列 ~ 1 | From: [203.121.231.213] | 發表日期 : 2014-09-21 00:32

個人用c++, 44ms AC

cin, for迴圈跑 switch

想請問此題如何寫得更快


我40ms ...

 

用if , long long int ,cin ,cout 

 
#9214: Re:此題的最快速解法為何


linhunghsiang (呆瓜)

學校 : 新北市立中和高級中學
編號 : 42763
來源 : [203.121.231.227]
最後登入時間 :
2021-03-17 22:35:58
a244. 新手訓練 ~ for + if -- 新手訓練系列 ~ 1 | From: [203.121.231.213] | 發表日期 : 2014-09-21 00:32

個人用c++, 44ms AC

cin, for迴圈跑 switch

想請問此題如何寫得更快


我40ms ...

 

用if , long long int ,cin ,cout 

:p

 

 
#9235: Re:此題的最快速解法為何


hugo8642612 (Hugowwwwwww)

學校 : 國立中央大學
編號 : 38705
來源 : [1.172.169.191]
最後登入時間 :
2023-02-04 01:50:43
a244. 新手訓練 ~ for + if -- 新手訓練系列 ~ 1 | From: [114.39.17.43] | 發表日期 : 2014-09-25 21:50

可以用scanf和printf取代cin和cout

cin >> a;

scanf("%lld",&a);

 

cout<<a;

printf("%lld",a);

%lld 用在long long int 

%d 用在int  

 

 
#9236: Re:此題的最快速解法為何


hugo8642612 (Hugowwwwwww)

學校 : 國立中央大學
編號 : 38705
來源 : [1.172.169.191]
最後登入時間 :
2023-02-04 01:50:43
a244. 新手訓練 ~ for + if -- 新手訓練系列 ~ 1 | From: [114.39.17.43] | 發表日期 : 2014-09-25 21:50

可以用scanf和printf取代cin和cout

cin >> a;

scanf("%lld",&a);

 

cout<<a;

printf("%lld",a);

%lld 用在long long int 

%d 用在int  

 

 
#9237: Re:此題的最快速解法為何


hugo8642612 (Hugowwwwwww)

學校 : 國立中央大學
編號 : 38705
來源 : [1.172.169.191]
最後登入時間 :
2023-02-04 01:50:43
a244. 新手訓練 ~ for + if -- 新手訓練系列 ~ 1 | From: [114.39.17.43] | 發表日期 : 2014-09-25 21:50

可以用scanf和printf取代cin和cout

cin >> a;

scanf("%lld",&a);

 

cout<<a;

printf("%lld",a);

%lld 用在long long int 

%d 用在int  

 

 
#9238: Re:此題的最快速解法為何


hugo8642612 (Hugowwwwwww)

學校 : 國立中央大學
編號 : 38705
來源 : [1.172.169.191]
最後登入時間 :
2023-02-04 01:50:43
a244. 新手訓練 ~ for + if -- 新手訓練系列 ~ 1 | From: [114.39.17.43] | 發表日期 : 2014-09-25 21:50

可以用scanf和printf取代cin和cout

cin >> a;

scanf("%lld",&a);

 

cout<<a;

printf("%lld",a);

%lld 用在long long int 

%d 用在int  

 


 
#9239: Re:此題的最快速解法為何


hugo8642612 (Hugowwwwwww)

學校 : 國立中央大學
編號 : 38705
來源 : [1.172.169.191]
最後登入時間 :
2023-02-04 01:50:43
a244. 新手訓練 ~ for + if -- 新手訓練系列 ~ 1 | From: [114.39.17.43] | 發表日期 : 2014-09-25 21:51

阿...抱歉  電腦沒反應按了好幾下...



 
#9636: Re:此題的最快速解法為何


phantom (shadow)

學校 : 國立嘉義高級中學
編號 : 47735
來源 : [140.112.25.33]
最後登入時間 :
2019-05-01 15:37:51
a244. 新手訓練 ~ for + if -- 新手訓練系列 ~ 1 | From: [59.105.24.233] | 發表日期 : 2015-02-06 23:32

 

個人用c++, 44ms AC

cin, for迴圈跑 switch

想請問此題如何寫得更快


#include <iostream>
#include <cmath>
using namespace std;
int main(){
long long int x,i,a,b,c;
while(cin>>x)
{
for(i=0;i<x;i++)
{
cin>>a>>b>>c;
if(a==1)
cout<<b+c<<endl;
else if(a==2)
cout<<b-c<<endl;
else if(a==3)
cout<<b*c<<endl;
else
cout<<b/c<<endl;
}
}
return 0;
}

 

 

36ms    微笑 


 
#9760: Re:此題的最快速解法為何


yinming963 (小傑)

學校 : 國立臺灣海洋大學
編號 : 48577
來源 : [42.77.135.68]
最後登入時間 :
2022-05-02 13:50:27
a244. 新手訓練 ~ for + if -- 新手訓練系列 ~ 1 | From: [114.47.173.202] | 發表日期 : 2015-04-03 21:37

個人用c++, 44ms AC

cin, for迴圈跑 switch

想請問此題如何寫得更快

 


C++,32m/s AC

 

我想說我很慢的說= = 

 
#9761: Re:此題的最快速解法為何


CSE310634 (123gogo)

學校 : Pui Kiu College 培僑書院
編號 : 47007
來源 : [27.246.226.53]
最後登入時間 :
2015-06-27 14:32:00
a244. 新手訓練 ~ for + if -- 新手訓練系列 ~ 1 | From: [119.15.252.29] | 發表日期 : 2015-04-04 16:20

可以用scanf和printf取代cin和cout

cin >> a;

scanf("%lld",&a);

 

cout<

printf("%lld",a);

%lld 用在long long int 

%d 用在int  

 


 

可以再用一個變數 去裝 b c的結果 在顯示那個變數 會比較快

 

28ms 

 
#10315: Re:此題的最快速解法為何


tyc40406 (Master)

學校 : 元智大學
編號 : 47332
來源 : [223.140.198.189]
最後登入時間 :
2017-12-01 15:44:01
a244. 新手訓練 ~ for + if -- 新手訓練系列 ~ 1 | From: [140.138.17.18] | 發表日期 : 2015-10-01 10:41

#include <iostream>

#include <string>

 

using namespace std;

 

 

 

int main()

{

long long int number,b,c;

cin>>number;

int a[number];

 

for(int i = 0 ; i<number ; i++)

{

cin>>a[i]>>b>>c;

switch(a[i])

{

case 1:

cout<<b+c<<endl;

break;

case 2:

cout<<b-c<<endl;

break;

case 3:

cout<<b*c<<endl;

break;

case 4:

cout<<b/c<<endl;

break;

}

}

return 0;

}

C++32ms 請參考

 
 
#10876: Re:此題的最快速解法為何


noodlet (noodlet)

學校 : 國立臺南第一高級中學
編號 : 37964
來源 : [36.237.83.152]
最後登入時間 :
2016-04-30 19:02:20
a244. 新手訓練 ~ for + if -- 新手訓練系列 ~ 1 | From: [36.237.84.229] | 發表日期 : 2016-04-22 21:35

個人用C++ 28ms AC
沒有使用 if-else switch
反而用了函式指標

 

#include <iostream>

#include <cstdlib>

#include <math.h>

 

 

long op_add(long b,long c)

{

    return b+c;    

}

long op_sub(long b,long c)

{

    return b-c;    

}

long op_mult(long b,long c)

{

    return b*c;    

}

long op_div(long b,long c)

{

    return b/c;    

}

 

long (*Operator[4])(long,long) = {op_add,op_sub,op_mult,op_div};

int main()

    long N;

    std::cin >> N;

    

    long b;

    long c;

    long opIndex; // 運算符號引索 

 

    while(N>0)

    {

        N--;

        std::cin >> opIndex >> b >> c;

        std::cout << Operator[opIndex-1](b,c) << std::endl;

        

    }

};

 

 
ZeroJudge Forum