C++实现两数组对应元素和奇偶判断输出0/1,求替代实现方案
解决方案
方案1:三目条件运算符实现(符合你的优先要求)
你原代码中的list3参数无实际作用,逻辑属于巧合正确,以下是修正后直接使用三目运算符实现的版本:
#include <iostream> using namespace std; void myLists(int list1[], int list2[], int size) { for (int i = 0; i < size; i++) { // 三目运算符直接判断和的奇偶性输出对应值 cout << ((list1[i] + list2[i]) % 2 == 0 ? 0 : 1); } } int main() { int list1[5]{1, 2, 3, 4, 5}; int list2[5]{0, 4, 6, 8, 10}; int size = sizeof(list1) / sizeof(list1[0]); myLists(list1, list2, size); return 0; }
运行结果和原代码一致:
10101
方案2:位运算优化版
两个数的和的奇偶性,等价于两个数二进制最低位的异或结果,不需要做加法和取模运算,性能更高,适合处理大规模数组场景:
#include <iostream> using namespace std; void myLists(int list1[], int list2[], int size) { for (int i = 0; i < size; i++) { // 异或后取最低位直接得到结果,1代表和为奇,0代表和为偶 cout << ((list1[i] ^ list2[i]) & 1); } } int main() { int list1[5]{1, 2, 3, 4, 5}; int list2[5]{0, 4, 6, 8, 10}; int size = sizeof(list1) / sizeof(list1[0]); myLists(list1, list2, size); return 0; }
运行结果同样为:
10101
内容的提问来源于stack exchange,提问作者G Dube
相关产品推荐
相关产品推荐

