アルゴリズムは小数点以下の桁数をカウントし[ループ]、数値の各桁を正と逆の順序で出力します

小数点以下の桁数を
順番に数え、数値の桁を逆の順序で出力し数値の各桁を
逆の順序で出力します

(1)小数点以下の桁数を数える[ループ]


整数は何桁ですか?整数は負、ゼロ、または正の場合があります。*

例1:

入力:0

出力:1

例2:

入力:123456789

出力:9

例3:

入力:-123456789

出力:9

アルゴリズム:0まで毎回1桁を破棄し、破棄の数を数えます

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

(2)番号の各桁を順番に出力します[ループ、再帰]

整数を指定して、数値の各桁を出力します。たとえば、123456の出力結果は1 2 3 4 56です。

例1:

入力:123456

出力:1 2 3 4 5 6

アルゴリズム1:ループを使用して最上位桁を取得して出力し、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;  

    }  

} 

アルゴリズム2:再帰的な出力データを使用する

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

(3)数値の各桁を逆の順序で出力します[ループ]


整数を指定して、数値の各桁を逆の順序で出力します。たとえば、123456の出力結果は6 5 4 3 21です。

例1:

入力:123456

出力:6 5 4 3 2 1

アルゴリズム1:1の桁を取得し、1の桁を出力してから、0まで1の桁を破棄します。

void PrintReverse(int n)  

{
    
      

    do  

    {
    
      

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

        n /= 10;//丢弃个位  

    }while(n != 0);  

    printf("\n"); 
} 

おすすめ

転載: blog.csdn.net/Gunanhuai/article/details/109262641