本题要求实现一个统计整数中指定数字的个数的简单函数。 函数接口定义: 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; } /* 你的代码将被嵌在这里 */
时间: 2024-01-23 08:01:41 浏览: 55
实现如下:
```c
int CountDigit(int number, int digit) {
int count = 0; // 统计数字个数的变量
while (number != 0) {
if (number % 10 == digit) { // 如果个位数字等于指定数字
count++; // 统计数字个数加1
}
number /= 10; // 继续判断下一位数字
}
return count; // 返回数字个数
}
```
相关问题
本题要求实现一个统计整数中指定数字的个数的简单函数。 函数接口定义: int CountDigit( int number, int digit ); 其中number是不超过长整型的整数,digit为[0,9]区间内的整数。函数 CountDigit应返回number中digit出现的次数。
可以通过不断地取number的个位数,判断是否等于digit,累加出现次数的方式来实现。具体实现如下:
```
int CountDigit(int number, int digit) {
int count = 0;
while (number) {
if (number % 10 == digit) {
count++;
}
number /= 10;
}
return count;
}
```
在每一次循环中,取number的个位数,判断是否等于digit,如果相等则累加计数器count的值。然后将number除以10,去掉个位数。循环直到number变为0,最后返回count即可。
利用c#解决下面这个问题题要求实现一个统计整数中指定数字的个数的简单函数。 函数接口定义: int CountDigit( int number, int digit ); 其中 number 是不超过长整型的整数,digit 为[0, 9]区间内的整数。函数 CountDigit 应返回 number 中 digit 出现的次数。 输入样例: -21252 2 输出样例: Number of digit 2 in -21252: 3
以下是 C# 的实现代码:
```csharp
using System;
public class Program {
public static void Main() {
int number = -21252;
int digit = 2;
int count = CountDigit(number, digit);
Console.WriteLine("Number of digit {0} in {1}: {2}", digit, number, count);
}
public static int CountDigit(int number, int digit) {
int count = 0;
if (number < 0) {
number = -number;
}
while (number > 0) {
if (number % 10 == digit) {
count++;
}
number /= 10;
}
return count;
}
}
```
输出结果为:
```
Number of digit 2 in -21252: 3
```
解释:在函数 CountDigit 中,我们先将 number 转成其绝对值(如果是负数),然后对其每一位进行判断是否等于 digit,如果相等,则 count 加 1。最后返回 count 即可。
阅读全文