SUST OJ 1642: 绝地求生—死亡顺序

1642: 绝地求生—死亡顺序

时间限制: 1 Sec   内存限制: 128 MB
提交: 81   解决: 53
[ 提交][ 状态][ 讨论版]

题目描述

最近陕西科技大学六公寓的小东同学深深的入迷了一款游戏,以至于他想进入这家游戏公司当程序员了。
这款游戏叫做《绝地求生:大逃杀》。
绝地求生,是一款开放世界策略射击游戏,采用虚幻4引擎制作。 是一款大逃杀类型的游戏,每一局游戏将有100名玩家参与,他们将被投放在绝地岛(battlegrounds)的上空,游戏开始跳伞时所有人都一无所有。 游戏展开的方式是:玩家赤手空拳地分布在岛屿的各个角落,利用岛上多样的武器与道具。 随着时间的流逝,岛上的安全地带越来越少,特定地区也会发生轰炸的情况,最终只有一人存活获得胜利。游戏的每一局比赛都会随机转换安全区,这样玩家的很新鲜与紧张感会更加强烈。
小东同学玩游戏也坚决不忘算法的学习,有一天,他面临了这样的情况,小东要前往安全区,他决定冒险通过一片大平原,虽然跑向两边的山上更安全,但是时间来不及了。在小东同学奔跑的过程中,浑然不知两边的山上各有一个人趴在那里埋伏猎物,他们同时发现小东,同时开枪!小东意识到危险了!伴随了若干声枪声,砰砰砰!小东已经倒地了...
小东挂掉之前一秒,意识到了一件事,两边的人同时开枪,那么我又多少种中弹顺序呢?比如我有100血,而一个人用冲锋枪每发子弹能伤害我30血,另一个人用步枪每发子弹能伤害我45血,那导致我死亡的中弹顺序可能是,30 30 30 45,也可能是 45 45 30,也有可能是45 30 45,等等。当然,血量小于或等于0都算被击倒。
同时要注意,如果两人每次对自己造成的伤害是相同的,但仍被看作不同的死亡顺序,比如玩家有100血量,左右两边的人每次能造成50血量的伤害,那么答案为4,情况分别为:
50 50(左边敌人打中了两枪)。
50 50(右边敌人打中了两枪)
50 50(左边敌人开了第一枪)
50 50(右边敌人开了第一枪)

输入

本题有多组测试数据。每组占一行,由三个正整数m n hp组成(10=<m<hp<90,10<=n<hp<90)。m代表左边的敌人每次对玩家造成的伤害,n代表右边的敌人每次对玩家造成的伤害,hp代表玩家的血量。

输出

对于每组输入数据,输出一行,结果为玩家有多少种死亡顺序,即中弹顺序。

样例输入

45 30 100
50 50 100
12 23 80

样例输出

9
4
34

#include<bits/stdc++.h>
using namespace std;
int sum;
int m,n,hp;
void k(int l)
{
    if(l<=0)
    {
        sum++;
        return;
    }
    k(l-m);
    k(l-n);
 } 
int main()
{
    while(~scanf("%d%d%d",&m,&n,&hp))
    {
        sum=0;
        k(hp);
        printf("%d\n",sum);
    }
    return 0;
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值