PTA-6-9 统计个位数字

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

函数接口定义:

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

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

裁判测试程序样例:

#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

 

特殊情况注意,两边极限和0-9的情况。

int Count_Digit ( const int N, const int D )
{
	int count=0;
	int n=0;
	int num=0;
	n=N;
	if(n<0)
	{
		n=-n;
	}
	if(N==D)
	{
		return 1;
	}
	while(n>0)
	{
		num=n%10;
		if(num==D)
		{
			count++;
		}
		n=n/10;
	}	
	return count;

}

 

### PTA数字题目解法 对于PTA平台上编号为7-44的猜数字游戏,通常涉及玩家猜测由计算机随机生成的一个固定长度(通常是四位)不重复数字组成的密码。每次猜测后会得到提示,告诉玩家有多少个数字位置和数值都正确(称为“A”),多少个数字仅数值正确而位置不对(称为“B”)。目标是在最少次数内找出这个秘密数字。 #### 解决方案概述 为了实现这一功能,可以采用如下算法: 1. 使用列表存储待验证的秘密数字序列; 2. 对于每一次用户的输入尝试,解析字符串并逐位比较与实际答案之间的差异来统计A和B的数量; 3. 输出反馈给用户直到完全匹配为止; 下面是一个简单的Python版本解决方案[^1]: ```python import random def generate_secret(): digits = list(&#39;0123456789&#39;) random.shuffle(digits) return &#39;&#39;.join(digits[:4]) # 取前四个作为secret number def check_guess(secret, guess): a_count = sum([a == b for a, b in zip(secret, guess)]) b_count = sum([g in secret and g != s for g, s in zip(guess, secret)]) + \ sum([guess.count(digit) - secret.count(digit) if digit in secret else 0 for digit in set(guess)]) return f"{a_count}A{b_count}B" if __name__ == "__main__": secret_number = generate_secret() while True: user_input = input("请输入您的猜想(4位不同数字): ") result = check_guess(secret_number, user_input) print(result) if "4A" in result: break print(f"\n恭喜您找到了正确的号码:{secret_number}") ``` 此代码片段实现了基本的功能需求,包括生成唯一且无重复项的秘密数字串、接收用户输入并与之对比以提供相应的AB指示符,并最终告知胜利条件达成的信息。
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值