Test Message

d584: 技能點數skill

內容

在楓之谷這個線上遊戲裡,
每個人創角色剛開始都是 1 級的初心者,初心者只有”初心者技能點數”,不特別計算。
8 級可以轉職成為法師,10 級可以轉職成為劍士、弓箭手、盜賊。
轉職後可以拿到技能點數 1 點,並且在往後每次升級都可以得到 3 點技能點數。
30 級解任務打完討厭的黑色珠子以後,
可以進行第二次轉職,拿到 1 點技能點數。
70 級進行第三次轉職,天阿…要和一轉教官的分身 PK,
打贏就可以第三次轉職,拿到 1 點技能點數。
好不容易練到 120 級四轉,解了超討厭的轉職任務以後,
第四次轉職可以拿到三點技能點。
最高 200 級封頂。

現在梅蘭和吳企鵝都玩膩冰雷大魔導士和主教了,
他們正在計畫練分身,請你幫他們算一算某個等級的某職業有多少技能點數呢?


輸入

本題有三個測資點,每個測資點有多組測試資料。
每組測試資料一行,有兩個正整數。
第一個正整數表示這個角色的職業,0 是初心者、1 是劍士、2 是法師、3 是弓箭手、4 是盜賊
第二個正整數表示這個角色的等級 lv(1<=lv<=200)

0 1
0 9
0 200
1 10
3 11
4 29
4 30
2 30
1 50
3 70
2 120
4 200

輸出

按照說明寫的規則,請輸出這個角色的一生會拿到多少技能點數。
請注意: 1.初心者沒有技能點數,甚至有一種超級初心者完全不轉職可以練到 100 多等甚至 200! 2.我們假設要玩法師的人會乖乖在 8 等一轉,其它在 10 等一轉,
並且他們到了 30、70、120 級也會乖乖自動去轉職。
(也就是假設等級輸入 70,那麼請把一轉、二轉、三轉附贈的技能點數都算進去)

0
0
0
1
4
58
62
68
122
183
342
576


解題思路

簡單的條件判斷。


完整程式碼

AC (2ms, 104KB)
#include<stdio.h>

int main()
{
int occ, lv, ans;
while (scanf(" %d %d", &occ, &lv) == 2)
{
if (occ == 0)
ans = 0;
else if (occ == 2)
{
ans = (lv - 8) * 3;
if (lv >= 120)
ans = ans + 6;
else if (lv >= 70)
ans = ans + 3;
else if (lv >= 30)
ans = ans + 2;
else if (lv >= 8)
ans = ans + 1;
}
else
{
ans = (lv - 10) * 3;
if (lv >= 120)
ans = ans + 6;
else if (lv >= 70)
ans = ans + 3;
else if (lv >= 30)
ans = ans + 2;
else if (lv >= 10)
ans = ans + 1;
}
printf("%d\n", ans);
}
return 0;
}