Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

สูงสุดสี่ตัวเลขโดยไม่ต้องใช้ตัวดำเนินการแบบมีเงื่อนไขหรือระดับบิตใน C++


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