当我输入6,8,16或者24的时候为什么不能正确输出
public class lala {
public static void main (String[] args){
int s;
Scanner in =new Scanner(System.in);
System.out.print("请输入一个正整数:");
s=in.nextInt();
new teee(s);
}
}
class teee{
int x=6,y=8;
public teee(int s){
System.out.print("结果:");
int i,j,m=-1;
for(i=0;i*x<s;i++){
for(j=0;j*y<s;j++){
if(s==i*x+j*y){
m=i+j;
System.out.println(m);
break;
}
}
if(m>0)break;
}
if(m<0){System.out.println(m);}
}
}
コードの観点から、質問のコードは、方程式 s = 6i+8j を満たし、i の値が最小で、i+j を出力する解を見つけるものであると考えてみましょう。
に設定する必要があります。 リーリーまず、i=0 または j=0 の状況を満たしたい場合は、2 つのループの判定条件を
そうしないと、i=0 または j=0 の解、つまり整数倍の解を得ることができません。そのため、あなたが言及した 6、16、24 は不正確になります。
区切り線:
フォーラムの活動レベルとフォーラムでの Q&A の質のどちらかを選択するのは依然として困難です。
個人的には、「このような質問はとても簡単です」「百度で見つかります」などの、批判だけで提案のない回答や、メモする必要のないコメントは、常々感じていました。 、純粋に他人に迷惑をかけるためです。初心者にとって、この種の問題は簡単ではないかもしれません。また、Baidu にはそのような特定のコード ロジックの問題はありません。
新しい人が標準化されていない質問をした場合は、それを指摘し、正しい質問姿勢を身につけるように指導することができます。そうすることで、今後そのような間違いを犯さないようにするだけでなく、学生の熱意を弱めることもありません。新しい人を増やし、フォーラムの活動をよりフレンドリーにすることができます。
推奨トピック参照:
https://segmentfault.com/tour
私もここでは初心者です。segmentfault に初心者向けのウォーター パークがあるかどうかはわかりません。問題は解決しました。
デバッグ、-1 の出力に何か問題がありますか?どちらも for ループの条件を満たしていないので、 if(s==ix+jy){
を出力したいとします。 リーリー