[编程题] 分饼干

这篇博客讨论了一个编程题目,易老师试图将含有模糊数位的饼干平均分给n个孩子。题目要求找出模糊数字k的所有可能值,并计算能平分的方案数。输入包括模糊的k值和孩子数量n,输出是可能的k值种类。解题策略涉及动态规划,通过状态转移方程dp[i][newJ] += dp[i-1][J]来求解,其中newJ = (J * 10 + k) % n,k表示数字串的个位。
摘要由CSDN通过智能技术生成

易老师购买了一盒饼干,盒子中一共有k块饼干,但是数字k有些数位变得模糊了,看不清楚数字具体是多少了。易老师需要你帮忙把这k块饼干平分给n个小朋友,易老师保证这盒饼干能平分给n个小朋友。现在你需要计算出k有多少种可能的数值
输入描述:
输入包括两行:

第一行为盒子上的数值k,模糊的数位用X表示,长度小于18(可能有多个模糊的数位)

第二行为小朋友的人数n

输出描述:
输出k可能的数值种数,保证至少为1

输入例子1:
9999999999999X
3

输出例子1:
4

解题思路

dp:状态转移方程dp[i][newJ] += dp[i-1][J].其中i代表数字串的长度,J代表余数,结果值代表i长度的数字串中求余n余J的所有可能结果总数。
根据以上的说明,显而易见newJ==(J*10+k)%n ,k代表当前数字串中个位的值(也就是数字串的第i位)。


import java.util.Scanner;

public class Main {
    private static long fun(String str, i
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值