El algoritmo cuenta el número de dígitos decimales [bucle] y genera cada dígito del número en orden positivo e inverso.

Cuente el número de dígitos decimales en
orden, emita cada dígito del número en orden inverso, emita cada dígito del número en
orden inverso

(1) Cuente el número de dígitos decimales [bucle]


¿Cuenta cuántos dígitos tiene un número entero? Los números enteros pueden ser negativos, cero o positivos. *

Ejemplo 1:

Entrada: 0

Salida: 1

Ejemplo 2:

Entrada: 123456789

Salida: 9

Ejemplo 3:

Entrada: -123456789

Salida: 9

Algoritmo: descarte un solo dígito cada vez hasta 0, cuente el número de descartes

int NumofIntBit(int n)
{
    
    
	int ans = 0;
	if (n == 0)
	{
    
    
		ans = 1;
	}
	while (n != 0)
	{
    
    
		n = n / 10;
		ans++;
	}
	return ans;
}

(2) Genere cada dígito del número secuencialmente [bucle, recursividad]

Dado un número entero, genere cada dígito del número, por ejemplo, el resultado de salida de 123456 es 1 2 3 4 5 6.

Ejemplo 1:

Entrada: 123456

Salida: 1 2 3 4 5 6

Algoritmo 1: use el bucle para obtener el dígito más alto, déle salida y luego deséchelo hasta que sea 0.

void PrintOrder(int n)  

{
    
      

    if(n == 0)  

    {
    
      

        printf("0\n");  

        return ;  

    }  
    int m = n;  

    int count = 0;//统计n的位数  

    while(m != 0)  

    {
    
      

        m /= 10;//丢弃个位  

        count++;  

    }  

    int power = (int)pow(10.0,count-1);//需要引用math.h  
   while(n != 0)  

    {
    
      

        printf("%d ",n/power);//输出最高位  

        n %= power; //丢弃最高位  

        power /= 10;  

    }  

} 

Algoritmo 2: usar datos de salida recursivos

void OutPositiveSequence(int n)
{
    
    
	if (n < 10)
		printf("%d\n", n);
	else
	{
    
    
		OutPositiveSequence(n / 10);
		printf("%d\n", n % 10);
	}
}

(3) Salida de cada dígito del número en orden inverso [bucle]


Dado un número entero, genere cada dígito del número en orden inverso, por ejemplo, el resultado de salida de 123456 es 6 5 4 3 2 1

Ejemplo 1:

Entrada: 123456

Salida: 6 5 4 3 2 1

Algoritmo 1: Obtenga el dígito de las unidades, envíe el dígito de las unidades y luego descarte el dígito de las unidades hasta 0

void PrintReverse(int n)  

{
    
      

    do  

    {
    
      

        printf("%d ",n%10);//得到并输出个位  

        n /= 10;//丢弃个位  

    }while(n != 0);  

    printf("\n"); 
} 

Supongo que te gusta

Origin blog.csdn.net/Gunanhuai/article/details/109262641
Recomendado
Clasificación