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

ผลรวมแบบเรียกซ้ำของตัวเลขที่เกิดขึ้นจากการต่อท้ายซ้ำใน C++


ระบุ 'number' และ 'repeat' จำนวนเต็มสองตัวเป็นอินพุต เป้าหมายคือการคำนวณผลรวมของตัวเลขของหมายเลขที่ป้อนซ้ำ 'ซ้ำ' จำนวนครั้งจนกว่าผลรวมจะกลายเป็นตัวเลขหลักเดียว ทำเช่นนี้จนกว่าจำนวนที่ได้รับพร้อมผลรวมของหลักจะกลายเป็นตัวเลขหลักเดียว หากตัวเลขที่ป้อนเป็น 123 และทำซ้ำ=2 มากกว่าผลรวมของหลัก 123123 จะเป็น1+2+3+1+2+3=12 ซึ่งไม่ใช่ตัวเลขหลักเดียว ตอนนี้ผลรวมของหลัก 12 คือ 1+2=3 ผลลัพธ์จะเป็น 3

ให้เราดูสถานการณ์อินพุตเอาต์พุตต่างๆ สำหรับสิ่งนี้

ป้อนข้อมูล − หมายเลข=32 ซ้ำ=3

ผลผลิต − ผลรวมของตัวเลขแบบเรียกซ้ำของตัวเลขที่เกิดขึ้นจากการต่อท้ายซ้ำคือ:6

คำอธิบาย − ผลรวมของหลัก 323232 คือ 3+2+3+2+3+2=15 และผลรวมของหลัก 15 คือ 1+5=6 6 เป็นตัวเลขหลักเดียว ดังนั้นเอาต์พุตจะเป็น 6

ป้อนข้อมูล − หมายเลข=81 ซ้ำ=4

ผลผลิต − ผลรวมของตัวเลขแบบเรียกซ้ำของตัวเลขที่เกิดขึ้นจากการต่อท้ายซ้ำคือ:9

คำอธิบาย − ผลรวมของหลัก 81818181 คือ 1+8+1+8+1+8+1+8=36 และผลรวมของหลัก 36 คือ 3+6=9 9 เป็นตัวเลขหลักเดียว ดังนั้นเอาต์พุตจึงเป็น 9

แนวทางที่ใช้ในโปรแกรมด้านล่างมีดังนี้

  • ประกาศตัวแปรประเภทจำนวนเต็มสองตัวเป็นตัวเลขและทำซ้ำ ส่งข้อมูลไปยังฟังก์ชันเป็น Recursive_Sum(หมายเลข ทำซ้ำ)

  • ภายในฟังก์ชันเป็น Recursive_Sum(จำนวน int, int ซ้ำ)

    • ประกาศตัวแปรจำนวนเต็มเป็นผลรวมและตั้งค่าซ้ำ * sum(number);

    • กลับไปเรียกฟังก์ชันเป็นผลรวม (ทั้งหมด)

  • ภายในฟังก์ชันเป็นผลรวม (จำนวน int)

    • ตรวจสอบว่าหมายเลขเป็น 0 แล้วส่งคืน 0

    • ตรวจสอบว่าหมายเลข % 9 เป็น 0 แล้วส่งคืน 9

    • ELSE ส่งคืนหมายเลข % 9

  • พิมพ์ผลลัพธ์

ตัวอย่าง

#include <bits/stdc++.h>
using namespace std;
int sum(int number){
   if(number == 0){
      return 0;
   }
   if(number % 9 == 0){
      return 9;
   }
   else{
      return number % 9;
   }
}
int Recursive_Sum(int number, int repeat){
   int total = repeat * sum(number);
   return sum(total);
}
int main(){
   int number = 12;
   int repeat = 4;
   cout<<"Recursive sum of digits of a number formed by repeated appends is: "<<Recursive_Sum(number, repeat);
   return 0;
}

ผลลัพธ์

หากเรารันโค้ดด้านบน มันจะสร้างผลลัพธ์ต่อไปนี้

Recursive sum of digits of a number formed by repeated appends is: 3