【发布时间】:2015-12-10 13:32:54
【问题描述】:
我试图解决以下问题,但我被卡住了。我认为这是一个动态规划问题。 可以给点意见吗?
问题:
给定一个正数 n (n
例子:
n= 1, m= 2 结果= 2
n= 18,m=1 结果 = 1000000000000000000
提前致谢。
【问题讨论】:
-
我不明白这个问题。我的姿势似乎不太好。在您的第一个示例中: x=2, S(x)=S(2)=2; S(xm)=S(4)=4,违反了S(x)=S(xm)。在第二种情况下,当 m=1 时,任何 n 位数字都是一个解。
-
如果 DP 能在这里工作,我会感到非常惊讶。为什么你认为它会在这里工作?首先,我会寻找一些规则/模式。例如,被 9 整除,根据 (m modulo 9) 您可以自动限制可能的值。当然,如果 m=1,10,100,那么答案是显而易见的。 m = k*10 的答案与 m = k 的答案相同。仍然对于 n = 18,我看不出有任何方法可以在宇宙终结之前解决这个问题。
-
@isanco。结果是 2,因为
[0, 9]是可能的答案。 -
@Washington Guedes。谢谢,我现在明白了。
-
sjsu.edu/faculty/watkins/Digitsum0.htm 有一些数字和属性,ii 看起来(尽管值得怀疑)这样的问题的结果可以直接计算。
标签: c++ algorithm c++11 dynamic-programming