程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> nyoj 949哈利波特(細節題)

nyoj 949哈利波特(細節題)

編輯:C++入門知識

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
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;
}  



  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved