本题要求实现一个统计整数中指定数字的个数的简单函数。 函数接口定义: 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
时间: 2024-01-23 21:01:47 浏览: 42
请参考以下代码:
```c
int CountDigit(int number, int digit) {
int count = 0;
number = (number < 0) ? -number : number; // 将number取绝对值处理
while (number) {
if (number % 10 == digit) {
count++;
}
number /= 10;
}
return count;
}
```
主要思路是先将number取绝对值,然后通过循环和取模运算来统计digit在number中出现的次数。
相关问题
本题要求实现一个统计整数中指定数字的个数的简单函数。 函数接口定义: 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 即可。
阅读全文