Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

191
Views
Crear un bucle de matriz que muestre 0-101 y almacene las sumas de sus dígitos individualmente en ese índice

Tengo problemas para tratar de resolver esto. Necesito crear una aplicación que muestre los números de índice 0-101, y también almacene la suma de cada dígito de número de índice individual. por ejemplo:

  1. ÍNDICE---------NÚMERO GENERADO
  2. 0--------------------0
  3. 1---------------------2
  4. 2---------------------4
  5. 3---------------------6

Y así. El índice 17 almacenaría 25, porque 17 + 1 + 7 = 25. Tengo la lista de números de índice al día.

 public class ArrayPractice { public static void main(String[] args) { int sum = 0; int[] arrayNumber = new int[102]; for(int i = 0; i < arrayNumber.length; i++){ arrayNumber[i] = i; int add = i % 10; sum += add; i /= 10; System.out.println(i); } } }

También entiendo que para sacar la suma de los dígitos, hay que modular 10 y luego dividir por 10, 17 % 10 = 7, 17 / 10 = 1 7 + 1 = 8 + 17(índice) = 25.

Sigo sin poder hacer que esto funcione dentro de un ciclo. Cualquier ayuda sería muy apreciada.

over 4 years ago · Santiago Trujillo
3 answers
Answer question

0

También explicaré, dado que tiene números de 3 dígitos, no es suficiente dividir por 10 una vez. Tienes que hacerlo hasta que sea mayor que 0, así que para 100, obtienes 0, 0, 1. Por eso es mejor un bucle while, ya que no sabes cuándo terminará. Esto funciona para cualquier número entero.

Solo recuerde, los bucles for están destinados a usarse cuando sabe cuándo debe terminar su bucle. Si bien el bucle se usa cuando no sabe cuándo terminará, bueno, sabe cuándo, pero no cuándo sucederá.

EDITAR: Acabo de ver que tienes que agregar el índice en sí, 17 = 1 + 7 + 17. Se corrigió eso.

 int current; int[] array = new int[102]; int sum; for(int i = 0; i < array.length; i++){ current = i; sum = 0; while(current != 0){ sum += current % 10; current = current/10; } array[i] = sum+i; } for(int i = 0; i < array.length; i++){ System.out.println("Index " + i + " :" + array[i]); }
over 4 years ago · Santiago Trujillo Report

0

El problema con su código es que solo resume el último dígito del número, no funcionará para números que tienen dígitos mayores que 2 , debe recorrer todos los dígitos y seguir agregándolos al número.

 for(int i = 0; i < arrayNumber.length; i++) { arrayNumber[i] = i; int tmp = arrayNumber[i]; // summing up digits while(tmp > 0) { arrayNumber[i] += tmp%10; //extracting right-most digit tmp /= 10; // removing the right-most digit } System.out.println(i , arrayNumber[i]); }
over 4 years ago · Santiago Trujillo Report

0

Creo que está bastante cerca, pero lo más probable es que desee usar otra variable ( i no sea su iterador) para modificar; de lo contrario, su iterador se verá afectado continuamente. También querrá continuar haciendo la operación de modificación/división hasta que su número inicial sea 0 (es decir, haya procesado todos los dígitos). También querrá restablecer su suma para cada paso a través del bucle for.

Aquí está mi código de ejemplo:

 int[] arrayNumber = new int[102]; for (int i = 0; i < arrayNumber.length; i++) { int sum = i; int startingNumber = i; while (startingNumber > 0) { sum += startingNumber%10; startingNumber /= 10; } arrayNumber[i] = sum; System.out.println(i + " " + sum); }
over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!