c 语言 pta求整数的位数及各位数字之和
时间: 2024-11-09 10:22:37 浏览: 68
在C语言中,你可以通过循环和位运算的方式来计算一个整数的位数以及各位数字之和。这里有一个简单的函数示例:
```c
#include <stdio.h>
// 函数用于计算整数的位数
int countBits(int num) {
int bit_count = 0;
while (num != 0) {
num &= num - 1; // 将num向右移除最低位1,减少操作次数
bit_count++;
}
return bit_count;
}
// 函数用于计算各位数字之和
int sumDigits(int num) {
int sum = 0;
while (num > 0) {
sum += num % 10; // 取当前位数并加到总和上
num /= 10; // 移除最低位
}
return sum;
}
int main() {
int input_num;
printf("请输入一个整数: ");
scanf("%d", &input_num);
int bit_num = countBits(input_num);
int digit_sum = sumDigits(input_num);
printf("整数的位数是: %d\n", bit_num);
printf("各位数字之和是: %d\n", digit_sum);
return 0;
}
```
在这个程序里,`countBits`函数利用了位操作来减少循环次数,提高了效率;而`sumDigits`函数则逐个取出并累加整数的每一位。
阅读全文