gpt4 book ai didi

C++ 按数字比较两个数字

转载 作者:行者123 更新时间:2023-11-27 22:37:07 25 4
gpt4 key购买 nike

我想创建一个函数,只要输入的两个数字由相同的数字组成(没有替换),它就会返回 true。

例如,543 和 435 应返回 true,10001 和 11000 应返回 true,但 111222 和 122222 应返回 false。

我读过一些关于位掩码的内容,但不是很明白,你能帮帮我吗?

最佳答案

我认为处理此问题的最简单方法是使用存储桶。创建一个长度为 10(每个数字一个)的 std::vector,然后在遇到相应数字时递增索引。通过比较 vector 完成:

bool compare_digits(int x, int y) {
std::vector<int> x_vec(10), y_vec(10);
while(x != 0) { //!= instead of > so that we can handle negatives
x_vec.at(x%10)++; //increment whatever digit is in the 1's place
x /= 10; //chop off the 1's place digit
}

while(y != 0) { //repeat for y
y_vec.at(y%10)++;
y /= 10;
}

//check if they had the same digits
return (x_vec == y_vec);
}

关于C++ 按数字比较两个数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52880654/

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