আমাদেরকে একটি সংখ্যা দেওয়া হয়েছে ধরা যাক, সংখ্যা এবং একটি পূর্ণসংখ্যা টাইপ ভেরিয়েবলে সংরক্ষিত সংখ্যার মোট সংখ্যা ধরা যাক, ডিজি এবং কাজটি হল সেই n সংখ্যার সংখ্যাগুলির গণনা করা যা প্রদত্ত সংখ্যাটি যেখানে নেই সেখানে তৈরি করা যেতে পারে।
ইনপুট − n =2, অঙ্ক =2
আউটপুট − গণনা হল 153
ব্যাখ্যা − সংখ্যা 2 না থাকা সমস্ত দুটি সংখ্যার সংখ্যার সংখ্যা (n) 10, 11, 13, 14, 15, 16, 17, 18, 19, 30, 31, 33, 34, ...... হিসাবে 153। ,ইত্যাদি।
ইনপুট − n =3, অঙ্ক =3
আউটপুট − গণনা হল 2187
ব্যাখ্যা − তিনটি সংখ্যার সংখ্যা(n) সংখ্যা 3 না থাকলে 2187 হল 10, 11, 13, 14, 15, 16, 17, 18, 19, 30, 31, 33, 34, ...... ,ইত্যাদি।
নিম্নলিখিত প্রোগ্রামে ব্যবহৃত পদ্ধতি
-
একটি পূর্ণসংখ্যা ভেরিয়েবল হিসাবে সংখ্যা 'n' এবং অঙ্কটি ইনপুট করুন
-
এই ভেরিয়েবলগুলিকে একটি ফাংশনে প্রেরণ করুন যা একটি গণনা অপারেশন সম্পাদন করবে
-
দুটি ভেরিয়েবল ন্যূনতম এবং সর্বোচ্চ মান সেট করুন যা 'n' পৌঁছাতে পারে। উদাহরণস্বরূপ, একটি 2-সংখ্যার সংখ্যা 10 এর সর্বনিম্ন মান দিয়ে শুরু হয় এবং 99 পর্যন্ত শেষ হয়, একইভাবে, 3-সংখ্যার সংখ্যা 999 পর্যন্ত সর্বনিম্ন 100 দিয়ে শুরু হয়।
-
সর্বনিম্ন থেকে সর্বোচ্চ পর্যন্ত লুপটি শুরু করুন
-
লুপের ভিতরে, 'n' 0
এর বেশি না হওয়া পর্যন্ত শুরু করুন -
নম্বর আছে কি না তা পরীক্ষা করুন। সংখ্যাটি থাকলে কোনো অপারেশন করবেন না এবং সংখ্যাটি না থাকলে গণনা 1 দ্বারা বৃদ্ধি করুন।
উদাহরণ
#include<bits/stdc++.h>
using namespace std;
int count(int n, int digit){
int r =0;
int count = 0;
//calculate the min and max of the given number
int min = (int)(pow(10, n-1));
int max = (int)(pow(10, n));
//start the loop till max value start from min
for(int i=min; i<max; i++){
int a=i;
int f=0;
//while a is greater than 0
while(a>0){
r=a%10;
a=a/10;
if(r==digit){
f++;
}
if(f==0){
count++;
}
}
}
return count;
}
int main(){
int n = 2, digit = 2;
cout<<"Count of "<<n<< digit numbers not having a particular digit "<<digit<<" is :"<<count(n, digit);
return 0;
} আউটপুট
আমরা উপরের কোডটি চালালে আমরা নিম্নলিখিত আউটপুট পাব −
Count of 2 digit numbers not having a particular digit 2 is :153