華為筆試題 (消滅終極boss)

2021-07-11 04:32:41 字數 1336 閱讀 6491

玩家殺boss,玩家有普通攻擊和魔法攻擊

boss 有普通攻擊和暴擊

求玩家戰勝boss的最小回合數

#include

#include

void fight(int a[3],int

*fight_time,int

*win)

else

a[0]-=10;

}a[2]-=120;

}if(atmp!=100000 && atmp>0 && a[2]<=0)

if(atmp!=100000 && atmp<=0 && a[2]<=0)

//printf("%d,%d,%d\n",a[0],a[1],a[2]);

if( (*win) == -1 || (*win) == 1 )

return;

if(a[2]>0 && a[0]<=0)

if(a[2]<=0)

(*fight_time)++;

//bosshp<=17,普攻

if(a[2]<=17)

//玩家魔法攻擊

if(a[1]>=10)

//玩家續魔法

else

if(a[1]>=6)

//玩家考慮是否續魔法

else

if(a[1]>=2)

else

}else

//boss普通攻擊

if( (*fight_time) %5 == 0)

else

a[0]-=10;

fight(a,fight_time,win);

return;

}int main(void)

else

a[0]-=10;

a[1]-=10;

}fight(a,&fight_time,&win);

if(win==-1)

printf("-1");

else

printf("%d",fight_time);

//printf("%d,%d",fight_time,win);

return

0;}

結果如下

還有點瑕疵,可以自己改一下

消滅終極BOSS 華為機試題

昨天參加了華為的機試,兩個小時,三大題。第一題很簡單,長度為n的陣列,將後m個數字移到前面,前面的n m個數字移到後面,然後輸出陣列裡面前m個 後m個數的和。第二題是輸入員工的姓名,若干次的打卡時間,輸出打卡的狀態 包括缺席 打卡不正常 早退 遲到 正常 以及工作時間。不難,只是情況比較多,所以做起...

華為筆試題

int a nsize 其中隱藏著若干 0,其餘非 0整數,寫乙個函式 int func int a,int nsize 使a 把0移至後面,非 0整數移至 陣列前面並保持有序,返回值為原資料中第乙個元素為0 的下標。盡可能不使用輔助空間且考慮效率及異常問題,注釋規範且給出設計思路 include ...

華為筆試題

某軟體需要實現建議的cd key演算法,輸入3個正整數,以空格隔開,根據這3個整數生成cd key字串,輸出格式 x x x xxyy,包括16個字元,以短劃線分開,其中,cd key最後兩個yy是用於cd key的自校驗,確保cd key本身是合法的。cdkey使用的字元表23456789abcd...