Run Code
|
API
|
Code Wall
|
Misc
|
Feedback
|
Login
|
Theme
|
Privacy
|
Patreon
Vectores - insertar ordenado e imprimir
/* Dado un arreglo de números, generar un vector que contenga los mismos números, ordenados de forma ascendente de acuerdo a la sumatoria de sus dígitos. Imprimir el vector resultante, sin iteradores. Imprimir el vector en sentido inverso, usando iteradores. */ #include <iostream> #include <vector> using namespace std; /* Retorna la suma de los dígitos del número pasado por parámetro. */ int sumaDigitos(int num){ int suma=0; while (num!=0){ suma+=num%10; num=num/10; } return suma; } /* Inserta un número en un vector, ordenándolo de forma descendente de acuerdo a la sumatoria de sus dígitos. */ void insertarOrdenadoVector(vector<int> &ordenados, int n){ auto p = begin(ordenados); while (p!=end(ordenados) && sumaDigitos(*p) > sumaDigitos(n)) { p++; } ordenados.insert(p, n); } /*Recibe un arreglo de números y retorna un vector con los mismos elementos, ordenados de mayor a menor según la sumatoria de sus dígitos. */ vector<int> ordenadosSumatoriaDigitos(int arreglo[], int dl){ vector<int> ordenados; for (int i=0; i<dl; i++){ insertarOrdenadoVector(ordenados, arreglo[i]); } return ordenados; } /*Imprime vector. */ void impresion(vector<int> numeros){ for (int i=0; i<numeros.size(); i++){ cout << numeros[i] << " "; } cout << endl; } /*Imprime vector en sentido inverso. */ void impresion_inversa(vector<int> numeros){ for (auto p = numeros.rbegin(); p != numeros.rend(); p++){ cout << *p << " "; } cout << endl; } int main() { int arreglo[4] = {734, 1938, 20111, 96}; int dl=4; vector<int> vec = ordenadosSumatoriaDigitos(arreglo,dl); cout << "Vector:" << endl; impresion(vec); cout << "Impresión del vector en sentido inverso:" << endl; impresion_inversa(vec); }
run
|
edit
|
history
|
help
0
a simple tuple implementation
Hello
Perfect Square Solution
Ploshtina na pravoagolnik
bharat
next greater palindrome
poprawione_i_podzielone_1
Find the row with max ones
12
Random Vector Generator