Điểm:
100 (p)
Thời gian:
2.0s
Bộ nhớ:
1G
Input:
bàn phím
Output:
màn hình
Số một số là một số tự nhiên mà các chữ số của số đó giống nhau.
Ví dụ: \(1,8,111,555,99999,...\)
Cho một số tự nhiên \(N\). Hãy đếm số lượng số một số bé hơn hoặc bằng \(N\).
Input
- Một dòng chứa một số tự nhiên \(N\) (\(N \le 10^9\)).
Output
- Một số duy nhất là số lượng số thỏa mãn đề bài.
Example
Test 1
Input
15
Output
10
Note
Khi \(N=15\) thì có \(10\) số là \(1,2,3,4,5,6,7,8,9,11\).
Test 2
Input
111
Output
19
Note
Khi \(N = 111\) thì có \(19\) số là:
- Có \(9\) số từ \(1\) đến \(9\).
- Có \(9\) số \(11,22,33,...,99\).
- Có \(1\) số \(111\).
Bình luận
include<bits/stdc++.h>
define ll long long
using namespace std;
ll n;
void sub(){
ll a[]={1,2,3,4,5,6,7,8,9,11,111,1111,11111,111111,1111111,11111111,111111111,22,222,2222,22222,222222,2222222,22222222,222222222,33,333,3333,33333,333333,3333333,33333333,333333333,44,444,4444,44444,444444,4444444,44444444,444444444,55,555,5555,55555,555555,5555555,55555555,555555555,66,666,6666,66666,666666,6666666,66666666,666666666,77,777,7777,77777,777777,7777777,77777777,777777777,88,888,8888,88888,888888,8888888,88888888,888888888,99,999,9999,99999,999999,9999999,99999999,999999999};
ll d=0,x=sizeof(a)/sizeof(a[0]);
for(ll i=0;i<x;i++){
if(a[i]<=n)d++;
}
cout<<d; } signed main(){ ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0); cin>>n;
sub();
return 0;
}
6 bình luận nữa