我需要一个计数器算法,它使用任意给定的数字进行计数。
我的代码与此类似:
static char digits[] = {'x','y','z'}; /* Arbitrary number of arbitrary digits. */
int i;
for(i=0; i<100; i++) {
printf("%s\n", get_next());
}
我的预期输出:
x
y
z
yx
yy
yz
zx
zy
zz
yxx
yxy
yxz
yyx
yyy
yyz
yzx
yzy
yzz
zxx
... and so on
如您所见,我需要算法来实现get_next()
功能,所以使用 C 语言不是重点。
为澄清起见,编辑 I:
我的 get_next() 函数可能与此类似:
char get_next() {
static previous = digits[0];
char *next_number;
/* do something here using previous and digits[] */
return next_number;
}
请注意,对生成下一个数字的函数使用get_next(void)
ornext(previous_number)
或next(digits, previous_number)
原型对我来说并不重要。
编辑二为澄清目的:
与上面的简单示例相比,我的真实场景更加复杂,我需要一个适用于任意数量的任意数字的通用解决方案。
数字输入示例:
static char digits[] = {'a', 'b', 'c', ... 'z', '0', '1', ...}; /* Lots of digits */
static char digits[] = {'s','t','a','c','k','o','v','e','r'}; /* Arbitrary sequence */