Caer en la trampa de la tecnología digital

Para cualquier número natural N 0, resumió primeros dígitos de los cuales, que luego se multiplica por 3, y se añade 1 en un nuevo número natural N 1;

N0 para cualquier número natural, dígitos de que primero resumirse, a continuación, se multiplica por 1 más 3, se convierte en un nuevo número natural Nl; Esta operación se repite entonces N1, N2 puede producir un número natural de nuevo ; ...... repite esta operación, el resultado de la operación finalmente obtendrá un número fijo k Nk, simplemente caer en un digital "trampa". Este problema requiere la entrada de un número natural, que se da caída en el proceso de "trampa". Formato de entrada: da un número natural N0 (0 <N 0 <30.000 ) en una fila. Formato de salida: Para las entradas N0, paso la salida progresiva que caen en las trampas. N fila i-ésima se describe en la etapa iii caen en la trampa, el formato es: i: Ni (i≥1). Cuando un número natural obtenida en la etapa da como resultado Nk (k≥1) y la última etapa de NK-1 es el mismo, se detiene la salida.
entrada de la muestra: 5
ejemplo de salida:
1:16
2:22
3:13
4:13
escribí un poco, pero no puedo escribir en un solo paso, me escribió lo siguiente:

#include<stdio.h>
int main(){
 int x;
 scanf("%d",&x);
 int m=0; 
 int i=1;
 while(1){
  int t=0;
  int s=0;
  do{
   t=x%10;
   s=s+t;
   x/=10;  
  }while(x>0); 
    s=s*3+1;
    printf("%d:%d\n",i,s);
    if(s==m){
     break;
    }
       m=s;
    x=m;
    i++;   
 } 
 return 0;
}

A continuación está escrito por otra persona:

#include <stdio.h>
int cal(int n){
 int sum=0;
 while(n>0){
  sum += n%10;
  n /= 10;
 }
 return 3*sum+1;
}
int main()
{
 int i,n,res;
 scanf("%d",&n);
 i = 1;
 while(1){
  res = cal(n);
  printf("%d:%d\n",i,res);
  i++; 
  if(n == res){
   break;
  }
  n = res;
 } 
    return 0;
}
Publicado 17 artículos originales · ganado elogios 12 · vistas 258

Supongo que te gusta

Origin blog.csdn.net/qq_45894099/article/details/105319964
Recomendado
Clasificación