当我输入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의 상황을 만족시키려면 두 루프의 판단 조건을
그렇지 않으면 i=0 또는 j=0의 해, 즉 정수 배수 해를 얻을 수 없습니다. 이것이 바로 말씀하신 6, 16, 24가 부정확한 이유입니다.
구분선:
포럼의 활동 수준과 포럼 Q&A의 질 사이에서 선택하는 것은 여전히 어렵습니다.
개인적으로는 "이런 질문은 참 간단하다", "바이두에서 찾을 수 있다" 등의 답변에는 비판만 있을 뿐 제안은 없고, 적을 필요가 없는 댓글이 있다는 느낌을 늘 받아왔습니다. , 순전히 다른 사람에게 문제를 일으키기 위한 것입니다. 초보자에게는 이런 종류의 문제가 간단하지 않을 수 있습니다. 또한 Baidu에는 이러한 특정 코드 논리 문제가 없습니다.
새로운 사람들이 표준화되지 않은 질문을 할 경우 이를 지적하고 올바른 질문 자세를 취할 수 있도록 지도하면 앞으로 그러한 실수를 예방할 수 있을 뿐만 아니라 열정을 꺾지 않을 것입니다. 새로운 사람들과 포럼의 활동을 보장하면 더욱 친근해질 수 있습니다.
추천 주제 참조:
https://segmentfault.com/tour
저도 이곳에 처음 왔습니다. Segmentfault에 초보자를 위한 워터파크가 있는지 모르겠습니다. 여기에 간단한 질문을 해도 문제가 해결됩니다.
디버그, -1 출력에 문제가 있나요? for 루프의 어떤 조건도 충족되지 않습니다. if(s==ix+jy){
를 출력하려고 합니다. 으아악