ในโจทย์นี้ เราได้รับอาร์เรย์ arr[] ที่ประกอบด้วยค่าจำนวนเต็ม n ค่า งานของเราคือการสร้าง โปรแกรมหาเลขซ่อนใน C++
คำอธิบายโค้ด − สำหรับอาร์เรย์ เลขซ่อนคือตัวเลขที่เมื่อนำไปลบกับแต่ละองค์ประกอบของอาร์เรย์แล้วผลรวมเท่ากับ 0
มาดูตัวอย่างเพื่อเข้าใจปัญหา
อินพุต
arr[] = {4, 1, 6, 7, 2}
เอาต์พุต
4
การลบ 4 จากทุกองค์ประกอบของอาร์เรย์ และนำค่าที่ได้มาบวกกัน
= (1 - 4) + (6 - 4) + (7 - 4) + (4 - 2) = -3 + 2 + 3 - 2 = 0
แนวทางแก้ปัญหา
เพื่อแก้ปัญหา เราต้องคำนวณผลรวมขององค์ประกอบทั้งหมดในอาร์เรย์ จากนั้นหารผลรวมด้วยจำนวนองค์ประกอบทั้งหมด หากค่า sum / (จำนวนองค์ประกอบ) เป็นจำนวนเต็ม มันคือเลขซ่อน
โปรแกรมตัวอย่างการทำงานของวิธีแก้
ตัวอย่าง
#include <iostream>
using namespace std;
int calcHiddenNumber(int arr[], int n){
long int sum = 0;
for(int i = 0; i < n; i++){
sum = sum + arr[i];
}
int hidNum = (sum / n);
if((hidNum * n) == sum )
return hidNum;
else
return -1;
}
int main() {
int n = 4;
int arr[] = { 4, 11, 12, 21 };
cout << "The hidden number for the array is " << calcHiddenNumber(arr, n);
return 0;
}
เอาต์พุต
The hidden number for the array is 12