Random类有一个在给定范围内生成随机int的方法.例如:
Random r = new Random();
int x = r.nextInt(100);
Run Code Online (Sandbox Code Playgroud)
这将产生一个大于等于0且小于100的int数.我想用长数做同样的事.
long y = magicRandomLongGenerator(100);
Run Code Online (Sandbox Code Playgroud)
Random类只有nextLong(),但它不允许设置范围.
假设S = 5且N = 3,解决方案看起来像 - <0,0,5> <0,1,4> <0,2,3> <0,3,2> <5,0,0> < 2,3,0> <3,2,0> <1,2,2>等
在一般情况下,N个嵌套循环可用于解决问题.运行N嵌套循环,在它们内部检查循环变量是否加到S.
如果我们提前不知道N,我们可以使用递归解决方案.在每个级别中,运行从0到N的循环,然后再次调用函数本身.当我们达到N的深度时,看看获得的数字是否加起来为S.
其他动态编程解决方案?