โจทย์
เลขนีออน (Neon number) คือตัวเลขที่ผลรวมของหลักของกำลังสองของตัวเลขเท่ากับตัวเลขนั้นเอง มาดูตัวอย่างกัน
n = 9
square = 81
sum of digits of square = 8 + 1 = 9
ดังนั้น ตัวเลข 9 คือเลขนีออน
เราต้องตรวจสอบว่าตัวเลขที่กำหนดเป็นเลขนีออนหรือไม่ ถ้าเป็นเลขนีออนให้พิมพ์ Yes ไม่ใช่ให้พิมพ์ No
อัลกอริธึม
- กำหนดตัวเลข n
- หากำลังสองของตัวเลข
- หาผลรวมของหลักของกำลังสอง
- ถ้าผลรวมของหลักของกำลังสองเท่ากับตัวเลขที่กำหนด ให้ผลลัพธ์ true มิฉะนั้น false
การนำไปใช้งาน
ต่อไปนี้เป็นการนำไปใช้งานของอัลกอริธึมข้างต้นใน C++
#include <bits/stdc++.h>
using namespace std;
int isNeonNumber(int x) {
int square = x * x;
int digitsSum = 0;
while (square != 0) {
digitsSum += (square % 10);
square = square / 10;
}
return digitsSum == x;
}
int main(void) {
string result;
result = isNeonNumber(1) ? "Yes" : "No";
cout << 1 << "->" << result << endl;
result = isNeonNumber(3) ? "Yes" : "No";
cout << 3 << "->" << result << endl;
result = isNeonNumber(9) ? "Yes" : "No";
cout << 9 << "->" << result << endl;
}
ผลลัพธ์
หากคุณรันโค้ดข้างต้น คุณจะได้ผลลัพธ์ดังนี้
1->Yes 3->No 9->Yes