首页 > 解决方案 > 最小长度 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。

谁能帮我解决这个难题?

标签: c++algorithmdata-structures

解决方案


任何数字的递归总和 = N % 9 (9*n + remainder),除了 9 的倍数,它将是 0 和数字 0。对于 0,您可以轻松处理。

回溯k从[1-9]位中按升序选择数位,检查k选位排序后形成的位数n是否有美分b,即是否n % 9== b % 9。如果有匹配终止。


推荐阅读