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

Digital Root (ผลรวมดิจิทัลซ้ำ) ของจำนวนเต็มขนาดใหญ่ที่กำหนดใน C++ Program


ในบทช่วยสอนนี้ เราจะเรียนรู้วิธีค้นหารากดิจิทัลของตัวเลขที่ระบุ

รากดิจิทัลเป็นผลรวมของจำนวนหลัก (จนกว่าผลรวมของหลักจะกลายเป็นตัวเลขหลักเดียว)

เราได้รับจำนวนเต็มในรูปแบบสตริง และเราต้องหาผลรวมของตัวเลขซ้ำๆ จนผลรวมกลายเป็นหลักเดียว

มาดูขั้นตอนการแก้ปัญหากัน

  • เริ่มต้นจำนวนเต็มในรูปแบบสตริง

  • วนซ้ำตัวเลขและเพิ่มแต่ละหลักลงในตัวแปรผลรวม

  • หากผลรวมเป็น 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

บทสรุป

หากคุณมีข้อสงสัยใดๆ ในบทแนะนำ โปรดระบุในส่วนความคิดเห็น