本题要求实现一个统计整数中指定数字的个数的简单函数。
函数接口定义:
int CountDigit( int number, int digit );
其中 number 是不超过长整型的整数,digit 为 [0, 9] 区间内的整数。函数 CountDigit 应返回 number 中 digit 出现的次数。
裁判测试程序样例:
#include <stdio.h>
int CountDigit( int number, int digit );
int main()
{
int number, digit;
scanf("%d %d", &number, &digit);
printf("Number of digit %d in %d: %d\n", digit, number, CountDigit(number, digit));
return 0;
}
/* 你的代码将被嵌在这里 */
输入样例:
-21252 2
输出样例:
Number of digit 2 in -21252: 3
来源:
来源:PTA | 程序设计类实验辅助教学平台
链接:https://pintia.cn/problem-sets/13/exam/problems/466
提交:
题解:
/*
* 统计数 number 中数字 digit 的个数
*/
int CountDigit(int number, int digit) {
// 保证 number 为非负数
number = number < 0 ? -number : number;
// 当 number 和 digit 均为 0 时结果为 1
int result = number == 0 && digit == 0 ? 1 : 0;
while (number != 0) {
// 模运算取得 number 的最后一个数字
int lastNumber = number % 10;
// number 长度减一
number /= 10;
result = lastNumber == digit ? result + 1 : result;
}
return result;
}