ในปัญหานี้ เราได้รับตัวเลขจำนวนเต็มสี่จำนวน งานของเราคือสร้างโปรแกรมเพื่อค้นหาตัวเลขสูงสุดสี่ตัวโดยไม่ต้องใช้ตัวดำเนินการ 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