c++ - 最小长度 k
问题描述
给你一个正整数 n。一个数字的美丽因子是所获得的位数之和,直到获得的和为一位数。
例子
1987 年的美容系数 = 1+9+8+7 = 25 = 2+5 = 7 10 的美容系数 = 1+0 = 1 给你一个美容系数 b, 。您的任务是找到长度为 k 的最小数量 (n),其美容因子为 b 。
这里,数字的长度定义为数字的位数。
注意:输出中数字的位数必须是不同的,并且必须是正整数
例如 b=5 和 k=3 .answer 为 149。
谁能帮我解决这个难题?
解决方案
任何数字的递归总和 = N % 9 (9*n + remainder)
,除了 9 的倍数,它将是 0 和数字 0。对于 0,您可以轻松处理。
回溯k
从[1-9]位中按升序选择数位,检查k
选位排序后形成的位数n
是否有美分b
,即是否n % 9
== b % 9
。如果有匹配终止。
推荐阅读
- javascript - Javascript 类 - 在构造函数中返回先前构造的实例
- reactjs - 如何使用 axios 使用钩子从具有不同参数的 API 中获取数据?
- javascript - 按顺序将数组排序到另一个数组
- javascript - 在数组数组中分组对象数组-JS
- reactjs - 我想通过道具接收图像
- python - 重新排序 Nifti 文件轴
- javascript - 如何使用 javascript 或 jquery 查找元素并附加新元素
- java - 究竟什么时候需要同步 ThreadLocal.initialValue()?
- angular - 如何在子组件中设置元素的值
- c# - 任务在另一个线程 .NET 上异步运行