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;
}