java - 一道算法题,求指教;
大家讲道理
大家讲道理 2017-04-18 09:59:37
0
2
354

当我输入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);}
        
    }
    
}
大家讲道理
大家讲道理

光阴似箭催人老,日月如移越少年。

répondre à tous(2)
Ty80

Du point de vue du code, considérons le code de la question comme trouvant une solution qui satisfait l'équation s = 6i+8j, a la plus petite valeur de i et génère i+j.
Tout d'abord, cela peut être déterminé intuitivement. Si vous souhaitez satisfaire la situation de i=0 ou j=0, les conditions de jugement des deux boucles doivent être définies sur

.
i*x<=s 跟 j*y<=s

Sinon, nous ne pouvons pas obtenir la solution de i=0 ou j=0, c'est-à-dire la solution entière multiple, c'est pourquoi les 6, 16 et 24 que vous avez mentionnés sont inexacts.


Ligne de séparation :
Il est encore difficile de choisir entre le niveau d'activité du forum et la qualité des questions/réponses dans le forum.
Personnellement, j'ai toujours pensé que les réponses comme "Ce genre de question est très simple", "Vous pouvez la trouver sur Baidu" et autres, qui ne contiennent que des critiques mais pas de suggestions, ou des commentaires qu'il n'est pas nécessaire d'écrire , ont pour seul but de causer des ennuis aux autres. Pour les nouveaux arrivants, ce genre de problème n'est peut-être pas simple. De plus, Baidu n'a pas de problèmes de logique de code aussi spécifiques.
Si de nouvelles personnes posent des questions qui ne sont pas standardisées, vous pouvez les signaler et les guider pour qu'ils adoptent la bonne posture de questionnement. Cela non seulement les empêchera de commettre de telles erreurs à l'avenir, mais ne freinera pas non plus leur enthousiasme. de nouvelles personnes et assurer l'activité du forum. Notre forum pourrait être plus convivial.

Référence de sujet recommandée :
https://segmentfault.com/tour

Je suis également nouveau ici. Je ne sais pas si segmentfault a un parc aquatique pour les débutants, je peux poser des questions simples ici, problème résolu.

阿神

Débogage, il y a un problème avec la sortie de -1 ? Aucune des conditions de la boucle for n'est remplie. Vous souhaitez afficher if(s==ix+jy){

.
                m=i+j;
                System.out.println(m);
                break;
            }    
          修改你for循环里面的条件就好 《=
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal