কম্পিউটার

সন্তোষজনক সংখ্যার সংখ্যা m + যোগফল(m) + যোগফল(সমষ্টি(m)) =C++ এ N


ইনপুট হিসাবে একটি সংখ্যা N দেওয়া হয়েছে। লক্ষ্য হল m পর্যন্ত N পর্যন্ত সংখ্যাগুলি খুঁজে বের করা যা নিম্নলিখিত শর্তগুলি পূরণ করে। এখানে N<=10 9

m + যোগফল(m) + যোগফল ( যোগফল (m) ) =N. যেখানে যোগফল(m) হল m-এর অঙ্কের যোগফল৷

যদি m 137 হয় তাহলে যোগফল(m)=1+3+7=11 এবং যোগফল(m(m))=sum(11)=1+1=2

আসুন উদাহরণ দিয়ে বোঝা যাক।

উদাহরণস্বরূপ

ইনপুট - N=27

আউটপুট - সন্তোষজনক সংখ্যার গণনা m + sum(m) + sum(sum(m)) =N হল:3

ব্যাখ্যা - সংখ্যাগুলো হল:

9 ( 9 + 9 + 9 =27 )

15 ( 15 + (1+5) + (6) =27 )

21 ( 21 + (2+1) + (3) =27 )

ইনপুট - N=81

আউটপুট - সন্তোষজনক সংখ্যার সংখ্যা m + যোগফল(m) + যোগফল(সমষ্টি(m)) =N হল:2

ব্যাখ্যা - সংখ্যাগুলো হল:

63 ( 63 + (6+3) + 9 =81 )

66 ( 66 + (6+6) + (1+2) =81 )

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

এই পদ্ধতিতে আমরা সংখ্যার অঙ্কের যোগফল গণনা করব এবং N-এর সাথে যোগ যোগফলের তুলনা করব। গণনা করা যোগফল যদি N-এর সমান হয় তাহলে বৃদ্ধির সংখ্যা। শেষে ফলাফল হিসাবে গণনা ফেরত.

সবচেয়ে বড় সংখ্যা হতে পারে 10 9 তাহলে m সংখ্যার সর্বোচ্চ যোগফল হতে পারে 81 ( 9*9 ) এবং পরবর্তী সর্বাধিক অঙ্কের যোগফল (sum(m)) হতে পারে 16 ( 79 এর জন্য 7+9)। তাই আমরা N-97 থেকে N পর্যন্ত সংখ্যাগুলি পরীক্ষা করব কারণ N-97-এর থেকে ছোট এবং N-এর চেয়ে বড় পূর্ণসংখ্যা প্রদত্ত শর্ত পূরণ করবে না।

  • ইনপুট হিসাবে N পূর্ণসংখ্যা নিন।
  • ফাংশন মোট (int num) একটি সংখ্যা মোট নেয় এবং এর সংখ্যার যোগফল প্রদান করে।
  • সংখ্যার যোগফল হিসাবে res_total নিন এবং বর্তমান অবশিষ্টাংশ হিসাবে res. 0 দিয়ে উভয়ই শুরু করুন।
  • একটি সময় লুপ ব্যবহার করে প্রতিটি ইউনিট সংখ্যা অতিক্রম করুন।
  • একক সংখ্যাটিকে res=num % 10 হিসাবে নিন এবং res_total-এ যোগ করুন।
  • পরবর্তী সংখ্যার জন্য 10 দ্বারা সংখ্যা কমিয়ে দিন।
  • শেষে সংখ্যার অঙ্কের যোগফল হিসাবে res_total ফেরত দিন।
  • ফাংশন কন্ডিশন (int N) N নেয় এবং m + sum(m) + sum(sum(m))।
  • প্রাথমিক গণনাকে 0 হিসাবে নিন।
  • i=N-97 থেকে i<=N পর্যন্ত লুপ ব্যবহার করে ট্র্যাভার্স।
  • অঙ্কের যোগফল temp_1=total(i) হিসাবে গণনা করুন।
  • মোট(i) এর সংখ্যার যোগফলকে মোট(temp_1) হিসাবে গণনা করুন।
  • temp_3 =i + temp_1 + temp_2 সেট করুন। যদি এটি N এর সমান হয় তবে বৃদ্ধির সংখ্যা।
  • লুপ রিটার্নের শেষে ফলাফল হিসাবে গণনা।

উদাহরণ

#include <bits/stdc++.h>
using namespace std;
int total(int num) {
   int res_total = 0;
   int res = 0;
   while (num > 0) {
      res = num % 10;
      res_total = res_total + res;
      num = num / 10;
   }
   return res_total;
}
int condition(int N) {
   int count = 0;
   for (int i = N - 97; i <= N; i++) {
      int temp_1 = total(i);
      int temp_2 = total(temp_1);
      int temp_3 = i + temp_1 + temp_2;
      if (temp_3 == N) {
         count++;
      }
   }
   return count;
}
int main() {
   int N = 9999;
   cout << "Count of numbers satisfying m + sum(m) + sum(sum(m)) = N are: " << condition(N);
   return 0;
}

যদি আমরা উপরের কোডটি চালাই তবে এটি নিম্নলিখিত আউটপুট −

উৎপন্ন করবে

আউটপুট

Count of numbers satisfying m + sum(m) + sum(sum(m)) = N are: 2

  1. C++ এ প্রথম n প্রাকৃতিক সংখ্যার যোগফল

  2. C++ এ ফিবোনাচি সংখ্যার বর্গক্ষেত্রের সমষ্টি

  3. প্রাকৃতিক সংখ্যার যোগফল গণনা করার জন্য C++ প্রোগ্রাম

  4. দুই নম্বর যোগ করার জন্য C++ প্রোগ্রাম