#33945: C++ 解題思路


kk20180820@gmail.com (Wayne Yang)

學校 : 國立鳳山高級中學
編號 : 172018
來源 : [39.14.24.86]
最後登入時間 :
2024-09-14 00:24:32
d584. 技能點數skill -- jack1 | From: [49.159.254.231] | 發表日期 : 2023-02-17 00:21

#include<iostream>
using namespace std;

int ss(int n,int m,int ex)  //使用副程式來解決等級範圍問題 n是職業,m是等級,ex是該職業第一次轉職時機的等級
{
    int sum=0;

    if(m>=ex && n != 0)
    {
        sum++;                      //既然不是初心者,必定已經經過第一次轉職,所以直接給一點
        if(m>=30)                  //檢查是否已經二轉
        {
            sum++;
            if(m>=70)              //檢查是否已經三轉
            {
                sum++;
                if(m>=120)        //檢查是否已經四轉
                {
                    sum += 3;
                }
            }
        }

        sum += (m-ex)*3;      //我們知道在到達一定等級的時候才會額外增加 一點點 點數,所以其他部分必定是自己肝來的
        return sum;                //即每一等皆能獲得的3點點數,目前等級去減掉ex的等級,因為剛達到ex等級的時候,

//自己還是初心者,所以沒有到達ex等級的點數
    }else{

        return 0;
    }

}
int main(void)
{
    int n,m;
    while(cin>>n>>m)
    {
        int ans;
        int ex;

        if(n == 2)
        {
            ans = ss(n,m,8);
        }else
        {
            ans = ss(n,m,10);
        }
        cout<<ans<<'\n';

 

 

    }


    return 0;
}

 
ZeroJudge Forum