কম্পিউটার টিউটোরিয়াল

C++-এ বারবার অ্যাপেন্ড করা সংখ্যার রিকার্সিভ ডিজিট সম বের করুন


দুটি ইন্টিজার 'number' এবং 'repeat' ইনপুট হিসেবে দেওয়া। লক্ষ্য হলো ইনপুট নাম্বারটি 'repeat' বার রিপিট করিয়ে (অ্যাপেন্ড করিয়ে) তৈরি সংখ্যার ডিজিটগুলোর যোগফল বের করা যতক্ষণ না যোগফল একক ডিজিট হয়। এটি তখন পর্যন্ত চলবে যতক্ষণ না ডিজিট যোগফল দিয়ে প্রাপ্ত সংখ্যা একক ডিজিট হয়। যদি ইনপুট নম্বর ১২৩ এবং repeat=2 হয় তবে ১২৩১২৩-এর ডিজিট সম হবে ১+২+৩+১+২+৩=১২ যা একক ডিজিট নয়। এখন ১২-এর ডিজিট সম ১+২=৩। আউটপুট হবে ৩।

বিভিন্ন ইনপুট আউটপুট সিনেরিও দেখি

ইনপুট − number=32 repeat=3

আউটপুট − Recursive sum of digits of a number formed by repeated appends is: 6

ব্যাখ্যা − 323232-এর ডিজিট সম ৩+২+৩+২+৩+২=১৫ এবং ১৫-এর ডিজিট সম ১+৫=৬। ৬ একক ডিজিট সংখ্যা তাই আউটপুট ৬।

ইনপুট − number=81 repeat=4

আউটপুট − Recursive sum of digits of a number formed by repeated appends is: 9

ব্যাখ্যা − 81818181-এর ডিজিট সম ১+৮+১+৮+১+৮+১+৮=৩৬ এবং ৩৬-এর ডিজিট সম ৩+৬=৯। ৯ একক ডিজিট সংখ্যা তাই আউটপুট ৯।

নিচের প্রোগ্রামে ব্যবহৃত পদ্ধতি

  • দুটি ইন্টিজার টাইপ ভেরিয়েবল ডিক্লেয়ার number এবং repeat হিসেবে। Recursive_Sum(number, repeat) ফাংশনে ডেটা পাস।

  • Recursive_Sum(int number, int repeat) ফাংশনের ভিতরে

    • একটি ইন্টিজার ভেরিয়েবল ডিক্লেয়ার total হিসেবে এবং repeat * sum(number) দিয়ে সেট।

    • sum(total) ফাংশন কল রিটার্ন।

  • sum(int number) ফাংশনের ভিতরে

    • চেক IF number ০ তবে ০ রিটার্ন।

    • চেক IF number % 9 == 0 তবে ৯ রিটার্ন।

    • 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

  1. ফ্যাক্টোরিয়ালের ডিজিটের যোগফল (C++)

  2. C++-এ একটি সংখ্যা ম্যাজিক নম্বর (রিকার্সিভ ডিজিট সম ১) কিনা তা যাচাই করা

  3. C++-এ এলিকোয়ট সিকোয়েন্স (Aliquot Sequence)

  4. C++-এ দেওয়া সংখ্যার ডিজিটগুলোর যোগফল বের করা