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


shnovaj30101 (shnovaj30101)

學校 : 國立臺灣大學
編號 : 28609
來源 : [39.8.165.114]
最後登入時間 :
2020-08-31 20:25:39

#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
來源 : [36.227.85.174]
最後登入時間 :
2025-09-14 22:47:31

#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;