2016-11-01 3 views
-3

私は数学であまり良くありません。だから私の間違いを気にしないでください! これは質問です。Javaの数学クエリ

スピードキングはレーシンググループです。彼らのリーダーであるジョンはスズキ を所有しています。最高速度は300kmphです。 ライバルグループのリーダー、ランソンはドゥカティを所有しており、その最高速度は280kmです。 ジョンは10kmの軌道をn周回します。どのくらいの時間(分)で ジョンがカバーする同じ距離を完了するために取るランソン。ユーザーの入力として の値を入力します。サンプル入力:4サンプル出力:8

今これは私のソリューションです:

class speedyKings{ 
    public static void main(String args[]){ 
     Scanner in=new Scanner(System.in); 
     int ducs=280; 
     int hays=300; 
     int total_dist=10000; 
     int n=in.nextInt(); 
     double time=((10000*n)/280); 
     System.out.print(time); 
    } 
} 

しかし、それは右の出力を与えていないが、誰が助けることができますか?

+0

出力は8でなければなりませんが、あなたのロジックは '142.0' @MorozovIvan –

+0

を与え、なぜあなたは距離として10000を使用するのですか?トラックの長さは10km、速度はkm /時で提供されます。それらを分け、60を掛けて時を分に変換してください。サンプル出力に合わせて切り捨てます。切り詰め(4 * 10/280 * 60)= 8. –

+0

@ MorozovIvan(10 * n)/ 280にする必要があります。トラックはキロメートルであり、速度はキロメートルである。次に、答えを分に変換します。 – Nurjan

答えて

0

あなたの最善の策は、正しい値を取得する小さなのステップを取ることです。あなたが見てとで作業しているものを覚えておくことが適切な名前の変数を使用できます。

Scanner in = new Scanner(System.in); 
int laps = in.nextInt(); 
double speedInKph = 280; // km/h 
double lapLength = 10000; // meter 
double speedInMpS = speedInKph * 1000/3600; // m/s 
double secondsPerLap = lapLength/speedInMpS; // m/(m/s) = s 
double minutesPerLap = secondsPerLap/60; 
double minutes = minutesPerLap * laps; 

System.out.println("Minutes: " + minutes); 
1

それはそのようなものでなければなりません:

class SpeedyKings{ 

    public static void main(String args[]){ 
     Scanner in = new Scanner(System.in); 
     int n = in.nextInt(); 
     double ducs = 280.0; 
     double hays = 300.0; 
     double track = 10.0;   
     double time = (track * n)/ducs * 60; 
     System.out.print(time); 
    } 
}