Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - indict

#71
muchas gracias por la explicación,

tomando que i=i+1 también se obtiene la sucesión decreciente.

#include<iostream>
using namespace std;

int main(){
    int n,i;
    cin>>n;
    i=n+1;
    while (i>0){
          i--;
       
                cout<<i<<endl;} 
   
system ("PAUSE");
return 0;
}


#72
Cita de: Enagymo en 19 Octubre 2012, 19:34 PM
Le estás asignando a "i" dentro del while "n - 1", al no variar la variable "n", esa asignación siempre va a dar lo mismo y por ende nunca sale del loop.

Solución: lo que tenés que modificar dentro del while es el valor de "i".

Si lo querés recorrer de N..0 tenés que:

  • Inicializar "i" con "n - 1" (asignarselo antes del while)
  • Dentro del while decrementar la variable "i" en 1, o sea "i--;".
  • La condición del while debería de ser mientras que "i" sea mayor a 0.

Para esto también podrías usar un for:

#include<iostream>
using namespace std;

int main(){
   int n;
   cin>>n;
   for(int i = n - 1; i > 0; i--) {
       cout<<i<<endl;
   }    
   system ("PAUSE");
   return 0;
}


Muchas gracias por el aporte, pero en los ejercicios solo puedo utilizar while, si lo hago sin usar for, al dar un número empieza la sucesión con -1, es decir 7 hace 5,4,3,2,1.

#include<iostream>
using namespace std;

int main(){
    int n,i;
    cin>>n;
    i=n-1;
    while (i>0){
          i=i-1;
       
                cout<<i<<endl;} 
   
system ("PAUSE");
return 0;
}

#73
Hola, quiero hacer un programa que al introducirle un número natural n, calcule sus números menores hasta el 1.  Ej de 7, 6,5,4,3,2,1

He echo lo siguiente pero solo me calcula el primer n-1 y sigue infinitamente,

#include<iostream>
using namespace std;

int main(){
    int n,i=0;
    cin>>n;
    while (i<n){
        i=n-1;
       
        cout<<i<<endl;} 
   
system ("PAUSE");
return 0;
}


Gracias por la ayuda :D
#74
Gracias rir3760
#75
así perdón, es dividido siempre entre 10, n/10.
#76
el residuo de 4 sería 1. El de 426 por ejemplo sería 6 + 2 + 1
#77
gracias rir3760 por tu ayuda :).

Ahora quiero hacer algo más simple, es calcular la suma de los residuos de un número entero dado. He echo esto pero no me lo calcula. Espero que veáis que le falta al programa.

#include<iostream>
using namespace std;

int main()
{
   int n;
   int mod, suma=0;
   cin>>n;
   while(n>0)
   {
             
             mod=n%10;
             suma=suma+mod;}
   cout<<suma<<endl;
system ("PAUSE");
return 0;
}
#78
Hola,
quiero crear un programa que yo dé un número n y calcule la suma de sus cifras.

Manualmente lo que debería hacer el programa es: Ej. el número 423

Dividiría el 423 entre 10, 423/10= 42 (Divisor) y 3 (Residuo), 42/10= 4(Divisor) y 2 (Residuo) y 4/10= 0 (Divisor) y 1 (Residuo), entonces en el programa se debería sumar todos los residuos es decir 3+2+1 y sumarle el último numerador 4 y restarle el último residuo 1.

((3+2+1)+(4))-1=9 Da el número de cifras de n.

Yo he echo esto, pero no me calcula exactamente lo que quiero, si me pudierais corregir estaría muy agradecido.  :rolleyes:

#include<iostream>
using namespace std;

int main()
{
    int n;
    cin>>n;
    int suma=0;
    while(n>0)
    {
              suma=(n%10);
              suma=(n%10)+n-1;
              n=n/10;}
    cout<<suma<<endl;
system ("PAUSE");
return 0;
}