文章
34
粉丝
179
获赞
13
访问
199.1k
int main(){
int h,a,b,k;
int hp1; //白龙攻击后的血量
int i=1;
while(scanf("%d %d %d %d",&h,&a,&b,&k)!=EOF){
// int i=1;
int flag=0;
while(k--){
hp1=h-a;
if(hp1<1){
flag=1; //白龙胜利
break;
}
h=hp1+b; //一回合后黑龙的血量
}
if(flag==0)
printf("Case #%d: Unknow\n",i);
else
printf("Case #%d: White win\n",i);
i++;
}
return 0;
}
注意事项,这题算自己独自编写出来,就是在理解题意的时候花了较多时间。
在 k 次连续的回合进攻后,白龙必须休息一个回合,以储备体力。然而,白龙可以选择在任意的回合休息。(这句对于题目没啥用,但在刚开始的时候误导了自己,还是带入样例数据后发现的)
思路就是白龙攻击黑龙,此时hp的值要减少,只要保证每回合黑龙回血前hp还是大于等于1,那么就可以继续下一个回合,否则结束,白龙获得胜利。
用上break,减少循环,提高效率。
登录后发布评论
暂无评论,来抢沙发