如何手动检查给定整数的索引? 例如, 我有数字 3189。我想检查索引并确定它们是否为偶数。我应该把它变成一个数组检查索引吗?我有点失落了。
如果我将其转换为数组,并且数组的每个元素都是该数字的数字之一,那么这就可以了。但我不知道该怎么做?这样的事可能吗?
到目前为止我已经写了;
int count;
int index;
for (int i = 0; i < count; i++){
index = i;
if (index % 2 == 1){
index *= 3;
}
}
但我发现很难概念化。
以下是从数字中提取数字的方法:
int number = 3189;
int even = 0;
int odd = 0;
while (number != 0) {
int digit = number % 10; // Extract the last digit
if (digit % 2 == 0) // check if digit is even
even++;
else
odd++;
number = number / 10; // Remove the last digit
}
我假设给定的数字是整数,你只关心找到偶数和奇数的数字。
快速空运行:
3189
Iteration1:
digit = 9
even = 0, odd = 1
number = 318
Iteration2:
digit = 8
even = 1, odd = 1
number = 31
Iteration3:
digit = 1
even = 1, odd = 2
number = 3
Iteration4:
digit = 3
even = 1, odd = 3
number = 0
使用
sprint()/snprint()
转换为字符串更简单:
char str[/* Some max limit that would be enough */];
sprintf(str, "%d", /* Some integer literal or variable */); /* Use the proper format specifier if it is not an `int` */
那么每个数字的值为
array[i] - '0'
。 - @天气风向标