当前位置: 首页 > news >正文

函数题 6-9 统计个位数字【PAT】

文章目录

  • 题目
    • 函数接口定义
    • 裁判测试程序样例
    • 输入样例
    • 输出样例
  • 题解
    • 解题思路
    • 完整代码
    • AC代码

编程练习题目集目录

题目

  要求实现一个函数,可统计任一整数中某个位数出现的次数。例如 − 21252 -21252 21252 中, 2 2 2 出现了 3 3 3 次,则该函数应该返回 3 3 3

函数接口定义

int Count_Digit ( const int N, const int D );

  其中N和D都是用户传入的参数。 N N N 的值不超过 i n t int int 的范围; D D D [ 0 , 9 ] [0, 9] [0,9] 区间内的个位数。函数须返回 N N N D D D 出现的次数。

裁判测试程序样例

#include <stdio.h>
int Count_Digit(const int N, const int D);
int main()
{int N, D;scanf("%d %d", &N, &D);printf("%d\n", Count_Digit(N, D));return 0;
}
/* 你的代码将被嵌在这里 */

输入样例

-21252 2

输出样例

3

题解

解题思路

  判断传进数组的 N N N,如果 N = 0 N = 0 N=0 直接返回 1 1 1;如果 N < 0 N < 0 N0,先将 N N N 变为整数(乘以 − 1 -1 1 或者用 a b s abs abs 函数);创建一个数组用来存储 0 − 9 0-9 09 的数字个数,并初始化为 0 0 0,对非 0 0 0 N N N 进行求模取余,将每一位数对应的个数存进数组,返回数组中的第 D D D 个数字即可。

完整代码

#include <math.h>
#include <stdio.h>int Count_Digit ( const int N, const int D );int main()
{int N, D;scanf("%d %d", &N, &D);printf("%d\n", Count_Digit(N, D));return 0;
}/* 你的代码将被嵌在这里 */
int Count_Digit(const int N, const int D)
{int x, n = fabs(N), flag[10] = { 0 };if (n == 0){return 1;}while (n){x = n % 10;n /= 10;flag[x]++;}return flag[D];
}

AC代码

int Count_Digit(const int N, const int D)
{int x, n = N, flag[10] = { 0 };if (n == 0)return 1;if (n < 0)n *= -1;while (n){x = n % 10;n /= 10;flag[x]++;}return flag[D];
}

http://www.mrgr.cn/news/29396.html

相关文章:

  • 建立这一新框架以应对人才紧缺时期的敏捷内容运营
  • 论文速递 | 基于MIC-ICEEMD-RIME-DHKELM的碳排放预测模型研究
  • 解决nginx代理SSE接口的响应没有流式返回
  • MUNIK谈ASPICE系列专题分享(一)什么是ASPICE?
  • 农产品交易平台的设计与实现
  • 该州允许AI帮助裁定失业申请
  • linux 内核代码学习(九)--Linux内核启动和文件系统
  • 【工具】Java Excel转图片
  • 基于SpringBoot的在线教育平台的设计与实现
  • 高密原型验证系统解决方案(上篇)
  • 【Elasticsearch系列十一】聚合 DSL API
  • html,css基础知识点笔记(二)
  • UE4_后期处理六—复古电视效果
  • RTX 4090 系列即将停产,RTX 5090 系列蓄势待发
  • uniapp 发布苹果IOS详细流程,包括苹果开发者公司账号申请、IOS证书、.p12证书文件等
  • 上海人工智能实验室开源视频生成模型Vchitect 2.0 可生成20秒高清视频
  • 项目实战 (13)--- 内部并发多线程一致性处理
  • 回收站永久删除的文件还能恢复吗?教你恢复技巧
  • MQTT协议
  • Android开发高频面试题之——Android篇