C言語で整数の桁数を数える方法
数値の桁数を数えるには、次の2つの方法があります。
- 各数字を順番にループで判定:整数の各桁をループでたどり、整数が0になるまで処理を繰り返し、毎回目で桁数を1増やします。下記のようなコードになります。
#include <stdio.h>
int countDigits(int num) {
int count = 0;
if (num == 0)
return 1;
while (num != 0) {
num /= 10;
count++;
}
return count;
}
int main() {
int num;
printf("请输入一个整数:");
scanf("%d", &num);
int digits = countDigits(num);
printf("位数为:%d\n", digits);
return 0;
}
- 自然対数の演算により整数の桁数を獲得できる。具体的には以下である:
#include <stdio.h>
#include <math.h>
int countDigits(int num) {
if (num == 0)
return 1;
int digits = (int) log10(num) + 1;
return digits;
}
int main() {
int num;
printf("请输入一个整数:");
scanf("%d", &num);
int digits = countDigits(num);
printf("位数为:%d\n", digits);
return 0;
}
整数の桁数を出す方法は2種類あり、状況に応じてどちらを使うか選択できます。