Harry 新学了三种魔法。他能够用第一种魔法把 a 克的沙子变成 b 克金属,能够用另外一种魔法把 c 克金属变成 d 克金子,能够用第三种魔法把 e 克金子变成 f 克沙子。Harry 的两个好朋友Ron和Hermione知道了很高兴,可是Ron和Hermione有个分歧,Ron认为Harry能够用这三种魔法获得无限的金子,Hermione认为不能获得无限多的。Harry想知道究竟谁是对的
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
思路:正向黄金 《逆向黄金(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;
}
原文:http://www.cnblogs.com/gcczhongduan/p/5087171.html