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

เพิ่มค่าของนิพจน์ที่กำหนดใน C ++ . ให้สูงสุด


คำชี้แจงปัญหา

กำหนดจำนวนเต็มที่ไม่เป็นศูนย์สามจำนวน a, b และ c ภารกิจคือการหาค่าสูงสุดที่เป็นไปได้โดยใส่เครื่องหมายการบวกและการคูณระหว่างกันในลำดับใดก็ได้

โปรดทราบว่าอนุญาตให้จัดเรียงจำนวนเต็มได้ แต่ต้องใช้การบวกและการคูณเพียงครั้งเดียว

หาก a =1, b =3 และ c =5 ค่าสูงสุดจะเป็น 20 ดังนี้−

(1 + 3) * 5 =20

อัลกอริทึม

<ก่อน>1. หากจำนวนทั้งหมดเป็นบวก ให้บวกจำนวนน้อยสองตัวและคูณผลลัพธ์ด้วยจำนวนที่มากกว่า2 หากมีเพียงสองจำนวนที่เป็นบวก ให้คูณจำนวนบวก 2 จำนวนแล้วบวกจำนวนที่เหลือ 3 หากมีเพียงตัวเลขเดียวที่เป็นบวก ให้คูณจำนวนลบ 2 จำนวนแล้วบวกจำนวนที่เหลือ 4 หากตัวเลขทั้งหมดเป็นค่าลบ ให้บวกจำนวนเต็มที่มากที่สุดสองตัวแล้วคูณด้วยจำนวนที่เหลือ

ตัวอย่าง

#include ใช้เนมสเปซ std;int getMaximumResult(int a, int b, int c){ int negativeCnt =0; int sum =a + b + c; int mul =a * b * c; int ที่ใหญ่ที่สุด =สูงสุด (a, สูงสุด (b, c)); int น้อยที่สุด =min(a, min(b, c)); ถ้า (a <0) { ++negativeCnt; } ถ้า (b <0) { ++negativeCnt; } ถ้า (c <0) { ++negativeCnt; } if (negativeCnt ==0) { return (ผลรวม - ใหญ่ที่สุด) * ใหญ่ที่สุด; } else if (negativeCnt ==1) { return (mul / เล็กที่สุด) + เล็กที่สุด; } อื่น ๆ ถ้า (negativeCnt ==2) { ผลตอบแทน (mul / ใหญ่ที่สุด) + ใหญ่ที่สุด; } else if (negativeCnt ==3) { return (ผลรวม - น้อยที่สุด) * น้อยที่สุด; }}int main(){ int a =1, b =3, c =5; cout <<"ค่าสูงสุด =" < 

ผลลัพธ์

เมื่อคุณคอมไพล์และรันโปรแกรมข้างต้น มันสร้างผลลัพธ์ดังต่อไปนี้−

ค่าสูงสุด =20