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

C++ কোড: বিশেষ সংখ্যাগুলোর মোট অঙ্কের সংখ্যা গণনা

একটি পূর্ণসংখ্যা k দেওয়া আছে। এমন সংখ্যাকে "বিশেষ সংখ্যা" বলা হয় যেটির সব অঙ্ক একই। যেমন: 1, 11, 1111। বিশেষ সংখ্যাগুলোকে ১, ১১, ১১১, ১১১১, ২, ২২, ২২২, ২২২২, ৩, ৩৩, ৩৩৩, ৩৩৩৩ ... এই ক্রমে গণনা করা হয়। k পর্যন্ত বিশেষ সংখ্যাগুলোর মোট কতটি অঙ্ক আছে তা বের করতে হবে। k ≤ 10000।

সমাধানের ধাপসমূহ

k-কে স্ট্রিং-এ রূপান্তর করুন। প্রথম অঙ্ক এবং দৈর্ঘ্যের ভিত্তিতে ফর্মুলা ব্যবহার করুন: ((first_digit - 1) × 10) + v[length]। যেখানে v = {0, 1, 3, 6, 10}।

উদাহরণ

#include <bits/stdc++.h> 
using namespace std; 

void solve(int k) { 
    string s = to_string(k); 
    int v[] = {0, 1, 3, 6, 10}; 
    cout << ((s[0] - '0') - 1) * 10 + v[s.length()] << endl; 
} 

int main() { 
    int k = 9999; 
    solve(k); 
    return 0; 
}

ইনপুট

9999

আউটপুট

90

ব্যাখ্যা

k=9999 হলে, প্রথম অঙ্ক ৯, দৈর্ঘ্য ৪। ফলাফল = (৯-১)×১০ + v[৪] = ৮০ + ১০ = ৯০।

  1. C++-এ দেওয়া সংখ্যা প্রথম n প্রাকৃতিক সংখ্যার যোগফল কিনা তা খুঁজুন

  2. C++-এ ১ থেকে N পর্যন্ত মোট ডিজিট সংখ্যা গণনা

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

  4. সি++ প্রোগ্রাম: D দিয়ে বিভাজ্য N অঙ্কের সংখ্যা খুঁজে বের করা