gpt4 book ai didi

c++ - 如何确保一个数组有偶数个元素

转载 作者:行者123 更新时间:2023-11-30 05:21:02 27 4
gpt4 key购买 nike

所以我使用 rand() 在数组中生成随机数字串。但是,我只想生成偶数位数。示例:675986(生成 6 位数字)或 56237946(生成 8 位数字)。

到目前为止,这是我的代码

#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;

const int MAX = 30;


void constructArray(char[], int);

void printArray (const char[], int);


int main()
{
char str [MAX];
int n;

srand(time(NULL));

n = rand() % 20 + 4;

constructArray(str, n);
printArray(str, n);

}

void constructArray(char str[], int n)
{
char digits [] = {'1', '2', '3', '4', '5', '6', '7', '8', '9', '0'};

int k;




for (int i = 0; i < n; i++)
{
k = rand() % 10;
str [i] = digits[k];



if (str[0] == '0')
{
str[0] = digits[k] + 1;
}

}

}

void printArray (const char str [], int n)
{
cout << "Given ";
for (int i = 0; i < n; i++)
cout << str [i];
cout << endl;
}

最佳答案

main() 中,您确定 n 位数:

n = rand() % 20 + 4;

要检查它是否均匀,只需执行 !(n&1)。如果它是奇数,你可以然后或递减它。或者,您也可以直接转到 (~1&n),这只会将您的数字转换为偶数。 Online demo

补充说明:

这可以使用 bit manipulation magics .它检查是否设置了最低有效位,当且仅当数字为奇数时才为真。替代方案重置最低有效位,确保数字是偶数。它将正奇数转换为最接近的较小偶数,使其保持在当前上限 24 以下。

关于c++ - 如何确保一个数组有偶数个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40417923/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com