2017-10-21 7 views
-5

Quand donné 4 nombres, comment puis-je trouver quels 3 nombres sur les 4 donneront la plus grande somme. Donc, si donné 3 2 5 5, je veux java de résumer 3 5 5 pour un total de 13Faire java donner la somme la plus élevée de 3 nombres sur 4 donnés

J'ai cherché pendant environ 20 minutes et tout ce que je trouve est de savoir comment trouver le plus grand nombre des 4 nombres. Je sais que je peux absolument écrire 16 lignes de code comparant les 16 combinaisons différentes mais j'espérais que quelqu'un pourrait me diriger dans une direction plus rapide.

+1

Qu'avez-vous essayé jusqu'à présent? – Blip

+1

Recevrons-nous un accusé de réception dans votre soumission d'évaluation? – Hassan

+0

Sur une note sérieuse, s'il vous plaît ajouter le code que vous avez essayé jusqu'à maintenant, spécifiez sa sortie alors peut-être que quelqu'un peut vous aider. – Hassan

Répondre

1

Commencez par trouver le plus petit nombre.

Donc, pour 3 2 5 5 ce serait 2. Assurez-vous de stocker cela.

Ainsi, les chiffres à somme sont 3, 5 et 5

Pour obtenir la somme totale que vous devez ajouter tous les numéros ensemble afin:

3 + 2 + 5 + 5 = 15

Et puis moins le plus petit nombre de la somme. Donc 15-2 ce qui équivaut à 13

+0

C'est exactement ce que je cherchais. Je viens d'apprendre si les déclarations que je suis encore tout à fait nouveau à Java et cet algorithme m'a juste suscité de savoir comment obtenir le résultat dont j'avais besoin .. –

+0

@TylerR Glad je pourrais aider –

0

Trouvez d'abord le plus grand des quatre nombres et conservez-le de côté.

Ensuite, trouvez le plus grand des trois nombres restants et gardez-le de côté.

Puis trouvez le plus grand des deux nombres restants et conservez-le de côté. Puis additionnez les nombres mis de côté et affichez le résultat.

-1
public static void main(String args[]) { 
    int[] vals = new int[4]; 
    vals[0] = 3; 
    vals[1] = 2; 
    vals[2] = 5; 
    vals[3] = 5; 
    int result = sum4(vals); 
    System.out.println("Sum of x+y = " + result); 
} 

private static int sum4(int[] nums) 
{ 
    int retVal = 0; 
    int lowest = Integer.MAX_VALUE; 
    for (int i=0; i<nums.length; i++) 
    { 
     if (nums[i] < lowest) 
      lowest = nums[i]; 
     retVal += nums[i]; 
    } 
    retVal -= lowest; 
    return retVal; 
} 
+2

ne pas simplement cuillère nourrir l'op lui permettent d'apprendre. – Blip