(PTA)6-9 使用函数统计指定数字的个数 (15分)

该博客介绍了一个C++函数,用于统计不超过长整型的整数中指定数字(0-9)出现的次数。函数名为CountDigit,接收两个参数:整数number和待计数的digit,返回digit在number中的出现次数。博客提供了裁判测试程序的示例代码,包括main函数和注释。

本题要求实现一个统计整数中指定数字的个数的简单函数。

函数接口定义:
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

int CountDigit( int number, int digit ){
    int sum,t_num,count;
count=0;    
if(number<0){number=-number;}
    do{
t_num=number%10;
number=number/10;
if(digit==t_num){count++;}

    }while(number!=0);


return count;

    
}
PTA平台使用函数统计指定数字个数,通常需要实现一个名为`CountDigit`的函数,该函数接收两个参数:`number`(整数)和`digit`(指定统计数字,范围在`[0, 9]`区间内),返回`number`中`digit`出现的次数。以下是具体的实现方法和代码示例: ### 函数接口定义 ```c int CountDigit( int number, int digit ); ``` ### 代码实现 ```c #include <stdio.h> // 函数定义 int CountDigit( int number, int digit ){ int num = 0; if(number < 0){ number = -number; // 将负整数变为整数 } while (number > 0){ if (number % 10 == digit){ // 判断最低位是否相同 num = num + 1; } number = number / 10; // 去掉最低位 } return num; } 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; } ``` ### 代码解释 1. **函数`CountDigit`**: - 首先,检查`number`是否为负数,如果是负数,则将其转换为正数,因为负数的统计与正数相同。 - 然后,使用`while`循环遍历`number`的每一位。在每次循环中,检查`number`的最低位是否等于`digit`,如果相等,则计数器`num`加1。 - 最后,将`number`除以10,去掉最低位,继续下一次循环,直到`number`变为0。 2. **主函数`main`**: - 从标准输入读取`number`和`digit`。 - 调用`CountDigit`函数统计`digit`在`number`中出现的次数。 - 输出统计结果。 ### 复杂度- **时间复杂度**:$O(log_{10}n)$,其中$n$是`number`的大小。 - **空间复杂度**:$O(1)$,只使用了常数级的额外空间。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值