#8070: 個人覺得頗妙的解法


shnovaj30101 (shnovaj30101)

學校 : 國立臺灣大學
編號 : 28609
來源 : [39.8.165.114]
最後登入時間 :
2020-08-31 20:25:39
d460. 山六九之旅 -- 板橋高中教學題 | From: [115.43.236.130] | 發表日期 : 2013-08-09 00:06

#include<iostream>
using namespace std;

int main()
{
    int a;
    while (cin>>a)
    {
          cout<<(a/60)*399
                +(1-a/60)*(a/30)*890
                +(1-a/60)*(1-a/30)*(a/18)*890
                +(1-a/60)*(1-a/30)*(1-a/18)*(a/12)*790
                +(1-a/60)*(1-a/30)*(1-a/18)*(1-a/12)*(a/6)*590
              <<endl;
    }
}
 
剛剛想出來的 
完全靠加減乘除的運算就能AC 
 
#8768: Re:個人覺得頗妙的解法


p3a_owhj (阿普二信)

學校 : 不指定學校
編號 : 39897
來源 : [210.71.40.107]
最後登入時間 :
2024-03-29 10:41:11
d460. 山六九之旅 -- 板橋高中教學題 | From: [118.163.133.130] | 發表日期 : 2014-04-14 08:41

#include
using namespace std;

int main()
{
    int a;
    while (cin>>a)
    {
          cout<<(a/60)*399
                +(1-a/60)*(a/30)*890
                +(1-a/60)*(1-a/30)*(a/18)*890
                +(1-a/60)*(1-a/30)*(1-a/18)*(a/12)*790
                +(1-a/60)*(1-a/30)*(1-a/18)*(1-a/12)*(a/6)*590
              <
    }
}
 
剛剛想出來的 
完全靠加減乘除的運算就能AC 
 
 
以下是另一思考方式 
#include <iostream>
using namespace std;
int main()
{
    int age,pay ;
    int pay12,pay18,pay60;
    
    while (cin >>age ){
     pay12=(age>=6)*(age<12)*590+(age>=12)*790;
     pay18=(age<18)*pay12+(age>=18)*890;
     pay=(age<60)*(pay18)+(age>=60)*399 ;        
    cout << pay <<endl ;
    }
    return 0;
 
ZeroJudge Forum