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