小数点以下の桁数を
順番に数え、数値の各桁を逆の順序で出力し、数値の各桁を
逆の順序で出力します
(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");
}