J'ai trois tableaux, je vais ajouter tous les éléments dedans. Si la somme des éléments dans tous les trois tableaux est égale, i.e S1 = S2 = S3, la condition est satisfaite. Sinon, nous devons supprimer la dernière valeur de la matrice qui a la somme la plus élevée, puis une fois à nouveau toutes les trois tableaux pour vérifier si toutes les sommes des tableaux sont égales. Ce processus devrait être répété jusqu'à ce que la condition soit satisfaite. Aimablement m'aider avec ça. mon code Java est:
3 Réponses :
Si j'ai bien compris, ce que vous recherchez, cette méthode reviendra TRUE, si vous y passez vos trois matrices, si la condition que celle spécifiée est remplie (la somme d'éléments dans les matrices est égale, sinon supprimer dernier élément de plus grand et de revérifier pour la condition).
public static void main(String[] args) { //sample arrays int[] arr1 = {10,20,30}; int[] arr2 = {20,10,50}; int[] arr3 = {15,15,10}; //arrays last index int arr1LastIndex = arr1.length - 1; int arr2LastIndex = arr2.length - 1;; int arr3LastIndex = arr3.length - 1;; boolean whileCondition = false; boolean result = false; while(!whileCondition){ int sum1 = 0; int sum2 = 0; int sum3 = 0; for(int num : arr1){ sum1 += num; } for(int num : arr2){ sum2 += num; } for(int num : arr3){ sum3 += num; } //check which array sum is largest and make it's last element equal to 0 if(sum1 > sum2 && sum1 > sum3){ arr1[arr1LastIndex] = 0; arr1LastIndex -= 1; }else if(sum2 > sum1 && sum2 > sum3){ arr2[arr2LastIndex] = 0; arr2LastIndex -= 1; }else{ arr3[arr3LastIndex] = 0; arr3LastIndex -= 1; } //checks if all sums are equal if(sum1 == sum2 && sum2 == sum3){ whileCondition = true; result = true; } //checks if the sums we're never equal after going through the whole array if(arr1LastIndex < 0 || arr1LastIndex < 0 || arr3LastIndex < 0){ whileCondition = true; result = false; } } if (result){ System.out.println("Condition was met!"); }else{ System.out.println("Condition was NEVER met!"); } }
Essayez cette logique, je n'ai pas de bon compilateur en ce moment mais essayez si vous faites face à un problème de problème
import java.util.*; public class Main{ public static void main(String[] args) { int n1, n2 , n3, i; int count=0; int sum1=0,sum2=0,sum3=0; Scanner s = new Scanner(System.in); n1=s.nextInt(); n2=s.nextInt(); n3=s.nextInt(); int[] arr1=new int[n1]; int[] arr2=new int[n2]; int[] arr3=new int[n3]; for(i=0;i<n1;i++) arr1[i]=s.nextInt(); for(i=0;i<n2;i++) arr2[i]=s.nextInt(); for(i=0;i<n3;i++) arr3[i]=s.nextInt(); while(count==0){ for(i=0;i<n1;i++) { sum1+=arr1[i]; } for(i=0;i<n2;i++) { sum2+=arr2[i]; } for(i=0;i<n3;i++) { sum3+=arr3[i]; } if(sum1==sum2&&sum2==sum3) { count++; } else { if(sum1>sum2&&sum1>sum3) { arr1[n1-1]=0; } if(sum2>sum1&&sum2>sum3) { arr2[n2-1]=0; } if(sum3>sum1&&sum3>sum2) { arr3[n3-1]=0; } } } if(count>0){ System.out.println("Condtion Satisfied"); } } }
Travailler, merci pour la simple mise en œuvre aussi :)
Bienvenue @stonecoldCold :)
Je pensais que c'était assez clair, il veut changer et comparer les tableaux jusqu'à ce que la condition soit remplie
Oui, je veux vérifier la somme à plusieurs reprises jusqu'à ce que la condition soit remplie
Votre code ne fonctionne-t-il pas? Ajouter un cas d'erreur. Essayez de déboguer et de revenir avec une question spécifique si vous ne pouvez pas résoudre le problème vous-même.