【发布时间】:2023-04-05 12:37:01
【问题描述】:
我想通过递归来增加这个增量:
000
001
002
100
101
102
200
201
202
300
301
302
我知道从哪里开始和结束
String a = 000;
String b = 302;
分别。
我正在尝试使用此代码:
private static void extendToMax(String l, String h)
{
StringBuffer sb;
for(int i=2; i>=0; i--)
{
sb = new StringBuffer(l);
if(charToDigit(l.charAt(i)) < charToDigit(h.charAt(i))) {
sb.replace(i, i+1, inc(sb.charAt(i)));
extendToMax(sb.toString(),h);
}
if(checkElementary(sb.toString()))
{
if(array.indexOf(sb.toString())<0)
array.add(sb.toString());
}
}
}
但输出是001 002 102 202 302 201 202。数字202 不应重复。
【问题讨论】:
-
现在增量是这样的:001 002 102 202 302 201 202
-
你为什么使用递归?对于这个问题,迭代解决方案更有意义。
-
@JoeC 怎么样?它看起来有点像二进制,但我只想以最好的方式实现结果
-
我不确定我是否理解序列...如果您的“范围”是 000 到 302,为什么要打印 303?
-
@Stefan 错了谢谢,它应该停在 302