ในปัญหานี้ เราได้รับตัวเลขจำนวนเต็มสี่จำนวน งานของเราคือสร้างโปรแกรมเพื่อค้นหาตัวเลขสูงสุดสี่ตัวโดยไม่ต้องใช้ตัวดำเนินการ orbitwise แบบมีเงื่อนไขใน C++
คำอธิบายโค้ด - ในที่นี้ เรามีค่าจำนวนเต็มสี่ค่า และเราจำเป็นต้องหาค่าสูงสุดของตัวเลขเหล่านี้โดยไม่ต้องใช้ตัวดำเนินการแบบมีเงื่อนไขหรือระดับบิต
มาดูตัวอย่างเพื่อทำความเข้าใจปัญหากัน
อินพุต
a = 4, b = 7, c = 1, d = 9
ผลลัพธ์
9
แนวทางการแก้ปัญหา
ในการแก้ปัญหา เราจะเอาสององค์ประกอบก่อน จากนั้นจึงนำองค์ประกอบที่มากกว่ามาจับคู่กัน สำหรับแต่ละคู่ เราจะสร้าง 2 องค์ประกอบ arr[] และค้นหาองค์ประกอบที่มากกว่าโดยใช้ค่าบูลีน ค่าบูลีนใช้เป็นดัชนี พบได้จากสูตร [abs(x - y) + (x - y)] .
คำอธิบายง่ายๆ คือ
ถ้า arr[0] มากกว่า arr[1] ค่าบูลีนจะเป็น False . มิฉะนั้น จริง .
โปรแกรมเพื่อแสดงการทำงานของโซลูชันของเรา
ตัวอย่าง
#include <iostream>
using namespace std;
int findMax(int x, int y){
int arr[2] = {x,y};
bool MaxIndex = ( !(arr[0] - arr[1] + abs(arr[0] - arr[1])));
return arr[MaxIndex];
}
int CalcMaxElement(int a, int b, int c, int d) {
int max = a;
max = findMax(max, b);
max = findMax(max, c);
max = findMax(max, d);
return max;
}
int main() {
int a = 4, b = 9, c = 7, d = 1;
cout<<"The maximum of four numbers is "<<CalcMaxElement(a,b,c,d);
return 0;
} ผลลัพธ์
The maximum of four numbers is 9