gpt4 book ai didi

c - 如何获取作为输入输入的数字的最小倍数,而不是输入的数字本身?

转载 作者:行者123 更新时间:2023-11-30 19:25:25 25 4
gpt4 key购买 nike

我正在尝试获取不是其本身的数字的最小倍数,但我无法找到一种方法来做到这一点。假设我有一个数字搜索二叉树。

我想找到树根的最小倍数,那不是根本身。因此,如果给定树上有以下值:[2, 6, 4, 9, 12],我想找到 2 的最小倍数,在本例中为 4。现在,当我编写此代码时,我提出的所有算法都返回根的最小倍数,即......本身。我怎样才能找到我要找的“4”?

PS:如果问题措辞奇怪,我深表歉意,我不是母语人士。

最佳答案

算法非常简单。给定树根处的 x = value,您可以编写一个递归函数,该函数返回大于树中找到的 x 的 x 的最小倍数,如果没有这样的倍数,则返回 0。

int recursive (node* root, int x) {
int result = 0;
if (root->value > x && root->value % x == 0)
result = root->value;
if (root->left != NULL) {
int left = recursive (root->left, x);
if (left != 0 && (result == 0 || left < result))
result = left;
}
if (root->right != NULL) {
int right = recursive (root->right, x);
if (right != 0 && (result == 0 || right < result))
result = right;
}
return result;
}

然后调用int result = recursive(root, root->value)。

关于c - 如何获取作为输入输入的数字的最小倍数,而不是输入的数字本身?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58866602/

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