C语言编程挑战:Zf能否战胜大魔王?
C语言编程挑战:Zf能否战胜大魔王?
故事背景
大巫师的预言成真了!邪恶的大魔王即将在万年一遇的13月14号,将5月20日出生的MM作为祭品,获得毁灭世界的力量。英雄Zf挺身而出,决心阻止这场浩劫。
战斗规则
Zf和魔王进行回合制战斗,Zf率先攻击。 - 微笑大魔王的血量为n1,攻击力为k1。- Zf的血量为n2,攻击力为k2。
你的任务
编写一个C语言程序,根据Zf和魔王的血量和攻击力,判断Zf能否战胜魔王。
输入格式微笑大魔王的血量为n1,攻击力为k1,Zf的血量为n2,攻击力为k2
输出格式如果Zf能战胜魔王,输出'yes',否则输出'no'。
示例
**输入:**1 1 1 1
**输出:**yes
解决方案
以下是使用C语言编写的解决方案:c#include <stdio.h>
int canDefeatBoss(int n1, int k1, int n2, int k2) { int rounds1 = (n1 + k2 - 1) / k2; // 微笑大魔王需要的回合数 int rounds2 = (n2 + k1 - 1) / k1; // Zf需要的回合数 if (rounds2 <= rounds1) { return 1; // Zf能阻止大魔王 } else { return 0; // Zf不能阻止大魔王 }}
int main() { int n1, k1, n2, k2; scanf('%d %d %d %d', &n1, &k1, &n2, &k2); if (canDefeatBoss(n1, k1, n2, k2)) { printf('yes '); } else { printf('no '); } return 0;}
代码解释:
canDefeatBoss函数: - 计算Zf和魔王需要的回合数,向上取整。 - 如果Zf需要的回合数小于等于魔王需要的回合数,则Zf胜利。-main函数: - 读取输入。 - 调用canDefeatBoss函数判断结果并输出。
挑战你自己
你能否想出其他方法来解决这个问题?尝试优化代码,使其更加高效!
原文地址: http://www.cveoy.top/t/topic/djlX 著作权归作者所有。请勿转载和采集!