কম্পিউটার

C++ এ 1 থেকে N পর্যন্ত সংখ্যার মোট সংখ্যা গণনা করুন


ইনপুট হিসাবে আমাদের একটি সংখ্যা N দেওয়া হয়েছে। লক্ষ্য হল সংখ্যা 1 থেকে N সংখ্যার মধ্যে মোট সংখ্যা গণনা করা। 1 থেকে 9 সংখ্যার প্রতিটির জন্য 1টি সংখ্যার প্রয়োজন, 11 থেকে 99টির জন্য প্রতিটিতে 2টি সংখ্যার প্রয়োজন, 100 থেকে 999টির জন্য 3টি সংখ্যা প্রয়োজন এবং আরও অনেক কিছু।

আসুন উদাহরণ দিয়ে বুঝতে পারি

ইনপুট − N=11

আউটপুট − 1 থেকে N পর্যন্ত মোট সংখ্যার সংখ্যা হল:13

ব্যাখ্যা − 1 থেকে 9 নম্বরের প্রতিটিতে 1টি সংখ্যা রয়েছে :9টি সংখ্যা 10, 11টির প্রতিটিতে 2টি সংখ্যা রয়েছে। 4 টি সংখ্যা. মোট সংখ্যা=9+4=13।

ইনপুট − N=999

আউটপুট − 1 থেকে N পর্যন্ত মোট সংখ্যার সংখ্যা হল:2889

ব্যাখ্যা − 1 থেকে 9 নম্বরের প্রতিটিতে 1টি সংখ্যা রয়েছে :9টি সংখ্যা 10 থেকে 99টির প্রতিটিতে 2টি সংখ্যা রয়েছে। :180টি সংখ্যা। 100 থেকে 999 এর প্রতিটিতে 3টি সংখ্যা রয়েছে :2700 সংখ্যা মোট অঙ্ক =2700 + 180 + 9 =2889 সংখ্যা

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

আমরা দুটি পন্থা ব্যবহার করব। একটি সংখ্যা সংখ্যায় অঙ্ক গণনা করার জন্য একটি পুনরাবৃত্ত ফাংশন ব্যবহার করে একটি প্রথম নিরীহ পদ্ধতি। পাস করা সংখ্যাকে একটি স্ট্রিংয়ে রূপান্তর করুন। স্ট্রিংটির দৈর্ঘ্য সংখ্যায় সংখ্যা। প্রতিটি সংখ্যার জন্য এটি করুন বর্তমান সংখ্যা-1 বারবার বাইপাস করে।

  • একটি সংখ্যাকে ধনাত্মক পূর্ণসংখ্যা হিসাবে নিন৷

  • ফাংশন total_digits(int num) num নেয় এবং 1 থেকে num এর মধ্যে সংখ্যার সংখ্যা প্রদান করে।

  • সংখ্যায় সংখ্যা গণনা করতে, সংখ্যাকে স্ট্রিং-এ রূপান্তর করুন। (to_string(num))।

  • স্ট্রিংটির দৈর্ঘ্য সংখ্যায় সংখ্যা।

  • সংখ্যা 1 হলে রিটার্ন 1। অন্যথায় সংখ্যার চেয়ে কম বাকি সংখ্যার জন্য দৈর্ঘ্য+ মোট_সংখ্যা(সংখ্যা-1)।

  • শেষ পর্যন্ত আমরা ফলাফল হিসাবে মোট সংখ্যা পাব।

দক্ষ পদ্ধতি

এই পদ্ধতিতে, আমরা যুক্তি ব্যবহার করব যে প্রতিটি সংখ্যার জন্য N পর্যন্ত। আমরা 10, 100, 1000 অতিক্রম করব N পর্যন্ত। প্রতিটি 10i-এর জন্য, সংখ্যার সংখ্যা হল (num-i + 1)।

  • একটি সংখ্যাকে ধনাত্মক পূর্ণসংখ্যা হিসাবে নিন৷

  • ফাংশন total_digits(int num) num নেয় এবং 1 থেকে num এর মধ্যে সংখ্যার সংখ্যা প্রদান করে।

  • প্রাথমিকভাবে মোট গণনা 0 হিসাবে নিন।

  • i=1 থেকে i<=num অতিক্রম করুন, প্রতিটি পুনরাবৃত্তিতে i 10 দ্বারা বৃদ্ধি করুন এবং গণনা করতে num-i+1 যোগ করুন।

  • ফলস্বরূপ লুপের শেষে গণনা ফেরত দিন।

উদাহরণ (নিষ্পাপ পদ্ধতি)

#include <bits/stdc++.h>
using namespace std;
int total_digits(int num){
   string str = to_string(num);
   int length = str.length();
   if (num == 1){
      return 1;
   }
   return length + total_digits(num - 1);
}
int main(){
   int num = 20;
   cout<<"Count of total number of digits from 1 to n are: "<<total_digits(num);
   return 0;
}

আউটপুট

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

উৎপন্ন করবে
Count of total number of digits from 1 to n are: 31

উদাহরণ (দক্ষ পদ্ধতি)

#include <bits/stdc++.h>
using namespace std;
int total_digits(int num){
   int count = 0;
   for(int i = 1; i <= num; i *= 10){
      count = count + (num - i + 1);
   }
   return count;
}
int main(){
   int num = 20;
   cout<<"Count of total number of digits from 1 to n are: "<<total_digits(num);
   return 0;
}

আউটপুট

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

উৎপন্ন করবে
Count of total number of digits from 1 to n are: 31

  1. C++ এ a^b-এ সংখ্যার সংখ্যা

  2. 2-এ সংখ্যার সংখ্যা C++ এ n পাওয়ারে উত্থাপিত হয়েছে

  3. C++ এ {0, 1, 2, 3, 4, 5} সংখ্যা সহ n-ম সংখ্যা

  4. কিভাবে C++ ব্যবহার করে ওপেনসিভিতে ফ্রেমের মোট সংখ্যা গণনা করবেন?