3 回答
TA贡献1851条经验 获得超5个赞
就像是
function IncrementOne(int array[], int maxArrayInt, int maxArrayLength) {
int i = maxArrayLength - 1;
bool c = false;
do {
int p = array[i];
p = p + 1;
c = p > maxArrayInt;
if(c)
array[i] = 0;
else
array[i] = p;
i = i - 1;
}
while(c && i >= 0)
}
调用 IncrementOne 函数(即IncrementOne([0,0,3,3], 4, 3)对于您的示例)。如果需要,可以自动导出 maxArrayLength。
数组在 do / while 循环中至少运行一次
在 do while 循环中,获取数组中的最大值
增量值
检查值是否大于 maxArrayInt
如果是,则将最右边的值设置为 0 并再次运行循环
如果不是,则使用递增的值设置最右边的值并退出循环
TA贡献1775条经验 获得超11个赞
创建一个整数数组,然后对要更新的数组元素使用增量运算符。
int [] myIntArray = new int[10];
int myCurrentPos = 0;
...
myIntArray[myCurrentPos] = 1;
...
if((myIntArray[myCurrentPos] +1) == myMaxValue) {
myIntArray[myCurrentPos] = 0;
myCurrentPos++;
myIntArray[myCurrentPos] = 1;
}
else {
myIntArray[myCurrentPos]++; }
例如,您将想要扩展我包含的检查,例如数组大小的附加边界。
TA贡献2080条经验 获得超4个赞
你基本上想要的是一个基数为 4 的数字系统。
Base 4 Base 10
0000 -> 0
0001 -> 1
0002 -> 2
0003 -> 3
0010 -> 4
0011 -> 5
0012 -> 6
0013 -> 7
0020 -> 8
... 等等。
因此,保留一个以 10 为基数的数字计数器,将它们转换为您的基数(在本例中为基数 4)并将该表示适当地存储在您的数组中。
添加回答
举报