Maison > Article > développement back-end > Le nombre de fois qu'un tableau peut être divisé à plusieurs reprises en sous-tableaux avec des sommes égales
En C++, nous avons un fichier d'en-tête vectoriel qui peut modifier la taille du tableau au moment de l'exécution. Dans cet article, nous apprendrons le concept du nombre de fois qu'un tableau peut être divisé à plusieurs reprises en sous-tableaux de sommes égales.
Prenons un exemple pour montrer une partition de tableau avec une somme égale.
Le tableau donné est {1,2,3,4,2}, nous divisons le tableau en deux parties −
{1,2,3}- La somme totale de chaque indice d'un tableau est de 6.
{4,2} - La somme de chaque indice du tableau est 6.
Ainsi, 2 fois la taille d'un tableau donné peut être divisée en sous-tableaux de sommes égales.
Nous allons démarrer le programme avec les fichiers d'en-tête « iostream » et « vector ».
Maintenant, nous démarrons le programme en créant une classe nommée « isPartition_arr ».
Dans la section publique, déclarez un constructeur nommé ‘isPartition_arr’ qui accepte num comme paramètre pour résoudre la valeur de l'élément du tableau.
Nous définissons une fonction nommée 'cnt_Partition' de type entier pour calculer le nombre total de fois qu'un tableau peut être partitionné.
Nous initialisons la variable 'sum' à '0', qui sera ensuite utilisée pour additionner le tableau et stocker '0' dans la variable 'count', qui est utilisée pour garder une trace de les éléments du tableau incrémentent le nombre. Déclarez ensuite une boucle for pour parcourir chaque élément du vecteur ‘arr’.
Nous initialisons la variable 'current_sum' à '0' et parcourons chaque élément en utilisant la boucle for
Après avoir terminé la boucle for, nous commençons à utiliser une boucle while pour parcourir chaque élément.
Si 'current_sum' est égal à 'current_sum', alors le décompte sera incrémenté de '1' et réinitialisé 'current_sum' à '0'. Ensuite, renvoyer ‘cnt’ comptera le nombre de fois où le tableau peut être divisé de manière égale.
Nous partons de la fonction principale et créons un vecteur ‘num’ de type entier pour stocker la valeur du tableau.
Ensuite, nous transmettons la valeur 'num' en créant l'objet de la classe. Ensuite, nous appelons la fonction 'cnt_partition' en prenant l'objet et en le stockant dans la variable 'c'.
.
La traduction chinoise de#include <iostream> #include <vector> using namespace std; class isPartition_arr { public: vector<int> arr; isPartition_arr(vector<int>& num) { arr = num; } int cnt_Partition() { int sum = 0, count = 0; for (int i = 0; i < arr.size(); i++) { sum += arr[i]; } int current_sum = 0, j=0; while( j < arr.size() ) { current_sum += arr[j]; if (current_sum == sum / 2) { current_sum = 0; count++; } j++; } return count; } }; int main() { vector<int> num = {1, 2, 3, 4, 5, 5}; isPartition_arr A(num); int c = A.cnt_Partition(); cout <<"Number of times an array can be partitioned into\t"<< c <<"\t two subarrays with equal sum " << endl; return 0; }
Sortie
Number of times an array can be partitioned into 2 two subarrays with equal sum
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!