c語言怎么統(tǒng)計(jì)一個(gè)整數(shù)的位數(shù)

小億
412
2023-10-22 13:32:58
欄目: 編程語言

統(tǒng)計(jì)一個(gè)整數(shù)的位數(shù)可以通過以下兩種方法實(shí)現(xiàn):

  1. 使用循環(huán)逐位判斷:使用循環(huán)遍歷整數(shù)的每一位,直到整數(shù)變?yōu)?,每遍歷一次,位數(shù)加1。具體實(shí)現(xiàn)如下:
#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("請(qǐng)輸入一個(gè)整數(shù):");
    scanf("%d", &num);
    int digits = countDigits(num);
    printf("位數(shù)為:%d\n", digits);
    return 0;
}
  1. 使用數(shù)學(xué)方法求解:通過對(duì)數(shù)運(yùn)算可以得到整數(shù)的位數(shù)。具體實(shí)現(xiàn)如下:
#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("請(qǐng)輸入一個(gè)整數(shù):");
    scanf("%d", &num);
    int digits = countDigits(num);
    printf("位數(shù)為:%d\n", digits);
    return 0;
}

以上兩種方法都可以求得整數(shù)的位數(shù),具體使用哪種方法可以根據(jù)實(shí)際情況選擇。

0