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
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的代碼 比我寫的更簡單)
#includeint 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; }