学校から出た問題なんですが、うまくいかなくて悩んでます!ヒントだけでもいいのでください!
問題 整数a,b,c,d(b≠0、d≠0)を読み込み、a/b+c/dを計算し、結果を帯分数として出力せよ。(分数の約分はしなくてよい。)
という問題で、僕は
(キーボード入力は略)
int a,b,c,d,x,y;
int i=0 ;
x=0;
y=0;
System.out.println("文字aを入力してください");
line = br.readLine();
a = Integer.parseInt(line);
System.out.println("文字bを入力してください");
line = br.readLine();
b = Integer.parseInt(line);
while (b==0){
System.out.print("文字bを入力してください");
line = br.readLine();
b = Integer.parseInt(line);
}
System.out.print("文字cを入力してください");
line = br.readLine();
c = Integer.parseInt(line);
System.out.print("文字dを入力してください");
line = br.readLine();
d = Integer.parseInt(line);
while (d==0){
System.out.print("文字dを入力してください");
line = br.readLine();
d = Integer.parseInt(line);
}
x=(a*d+c*b)/(b*d);
if(x<1){
System.out.print((a*d+c*b)+"/"+(b*d));
}else{
if( (a*d+c*b)%(b*d)==0 ){
System.out.print(x);
}else{
if((a*d+c*b)/(b*d)>1){
for( i=(a*d+c*b); i>=(b*d); i-=(b*d)){
y=i-(b*d);
}
System.out.print(x+"+"+y+"/"+(b*d));
}}}}}
と作ってコンパイルしたのですが、他はちゃんとできたのですが、2,3,4,5と打ったり、5,6,7,8と打つと何も表示されません!
何が原因でしょうか。わかる人はヒントだけでも教えてもらえるとうれしいです!
お礼
なるほど!!! ではif((a*d+c*b)/(b*d)>=1)にすればできるんですね!! 本当落とし穴です・・・気付かなかったです。 わかりやすいご回答本当ありがとうございました!!やってみます!