ধরুন, আমাদের একটি পূর্ণসংখ্যা k দেওয়া হল। আমরা একটি সংখ্যাকে বিশেষ সংখ্যা বলি যদি সেই সংখ্যার সমস্ত সংখ্যা একই হয়। উদাহরণস্বরূপ, 1, 11, 1111 বিশেষ সংখ্যা। আমরা বিশেষ সংখ্যাগুলিকে 1, 11, 111, 1111, 2, 22, 222, 2222, 3, 33, 333, 3333 ইত্যাদি ক্রমে গণনা করি। k পর্যন্ত বিশেষ সংখ্যায় থাকা সংখ্যার মোট সংখ্যা আমাদের বের করতে হবে। k-এর মান 10000-এর বেশি নয়।
সুতরাং, যদি ইনপুট k =9999 এর মত হয়, তাহলে আউটপুট হবে 90।
পদক্ষেপ
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -
s := convert k to string Define an array v of size: := {0, 1, 3, 6, 10} print(((s[0] - '0') - 1) * 10 + v[length of s])
উদাহরণ
আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -
#include <bits/stdc++.h> using namespace std; #define N 100 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