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

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

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

ดูสถานการณ์ Input-Output ต่างๆ

Input - number = 32, repeat = 3

Output - Recursive sum of digits of a number formed by repeated appends is: 6

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

Input - number = 81, repeat = 4

Output - Recursive sum of digits of a number formed by repeated appends is: 9

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

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

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

  • ภายในฟังก์ชัน Recursive_Sum(int number, int repeat)

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

    • คืนค่าการเรียกฟังก์ชัน sum(total)

  • ภายในฟังก์ชัน sum(int number)

    • ตรวจสอบ IF number เป็น 0 แล้วคืนค่า 0

    • ตรวจสอบ IF number % 9 เป็น 0 แล้วคืนค่า 9

    • ELSE คืนค่า number % 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