ในบทช่วยสอนนี้ เราจะเรียนรู้วิธีค้นหารากดิจิทัลของตัวเลขที่ระบุ
รากดิจิทัลเป็นผลรวมของจำนวนหลัก (จนกว่าผลรวมของหลักจะกลายเป็นตัวเลขหลักเดียว)
เราได้รับจำนวนเต็มในรูปแบบสตริง และเราต้องหาผลรวมของตัวเลขซ้ำๆ จนผลรวมกลายเป็นหลักเดียว
มาดูขั้นตอนการแก้ปัญหากัน
-
เริ่มต้นจำนวนเต็มในรูปแบบสตริง
-
วนซ้ำตัวเลขและเพิ่มแต่ละหลักลงในตัวแปรผลรวม
-
หากผลรวมเป็น 0 ให้พิมพ์ 0
-
มิฉะนั้น ถ้าผลรวมหารด้วย 9 ลงตัว คำตอบคือ 9
-
มิฉะนั้นคำตอบคือผลรวมโมดูโล 9
ตัวอย่าง
มาดูโค้ดกันเลย
#include<bits/stdc++.h>
using namespace std;
int digitalRoot(string n) {
int digitsSum = 0;
for (int i = 0; i < n.length(); i++) {
digitsSum += n[i] - '0';
}
if (digitsSum == 0) {
return 0;
}
return digitsSum % 9 == 0 ? 9 : digitsSum % 9;
}
int main() {
string n = "12345";
cout << digitalRoot(n) << endl;
return 0;
} ผลลัพธ์
หากคุณเรียกใช้โค้ดด้านบน คุณจะได้ผลลัพธ์ดังต่อไปนี้
6
บทสรุป
หากคุณมีข้อสงสัยใดๆ ในบทแนะนำ โปรดระบุในส่วนความคิดเห็น