首页 > 代码库 > nyoj 949哈利波特(细节题)
nyoj 949哈利波特(细节题)
哈利波特
时间限制:1000 ms | 内存限制:65535 KB
难度:3
- 描述
Harry 新学了三种魔法,他可以用第一种魔法把 a 克的沙子变成 b 克金属,可以用第二种魔法把 c 克金属变成 d 克金子,可以用第三种魔法把 e 克金子变成 f 克沙子。Harry 的两个好朋友Ron和Hermione知道了非常高兴,但是Ron和Hermione有个分歧,Ron觉得Harry可以用这三种魔法获得无限的金子,Hermione觉得不能获得无限多的。Harry想知道到底谁是对的
- 输入
- 输入6个整数 a,b,c,d,e,f
(0<=a,b,c,d,e,f<=1000) - 输出
- 输出谁是对的,如果Ron是对的输出“Ron”,否则输出“Hermione”
- 样例输入
100 200 250 150 200 250 100 50 50 200 200 100 1 1 0 1 1 1 100 1 100 1 0 1
- 样例输出
Ron Hermione Ron Ron
- 上传者
ACM_王莹
思路:正向黄金 《逆向黄金(Ron)
正向 :k=b/c*d
逆向: q=(k/e)*f
w=(q/a)*b
p=(w/c)*d//逆向黄金
要注意,输入可以有0 所以
1.a=0 bcd 时候 无限黄金ron c=0&&d 无限变出金子 ron
2.当(a=0||c=0||e=0)&&b、d、f 也是无限金子
3.当(a==0&&b==0)||(e==0&&f==0)||(c==0&&d==0) herminoe中间有一个环节不能转换
(用的syy的代码 比我写的更简单)
#include<stdio.h> int main() { double a,b,c,d,e,f; while(~scanf("%lf%lf%lf%lf%lf%lf",&a,&b,&c,&d,&e,&f)) { if(c==0&&d) { printf("Ron\n"); continue; } if(a==0&&b&&c&&d) { printf("Ron\n"); continue; } if((a==0||c==0||e==0)&&b&&d&&f) { printf("Ron\n"); continue; } if((a==0&&b==0)||(e==0&&f==0)||(c==0&&d==0)) { printf("Hermione\n"); continue; } double k=(b/c)*d; double q=(k/e)*f; double w=(q/a)*b; double p=(w/c)*d; if(p>k) printf("Ron\n"); else printf("Hermione\n"); } return 0; }
nyoj 949哈利波特(细节题)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。