题目描述
冰棍特别喜欢整齐的东西,对于数更是有特殊的癖好。
冰棍认为,如果一个数只有恰好一位不是 00,那么这个数是整齐的。比如,1,2,40,5001,2,40,500 是整齐的数,而 1919,101,80801919,101,8080 不是整齐的数。
现在他很好奇,在 [1,n][1,n] 的区间内有多少个这种整齐的数。因为他一天要睡 2525 个小时,所以这事交给了你。
输入格式
输入第一行一个整数 TT。
接下来 TT 组数据,每组一行一个整数 nn。
输出格式
对于每组数据,输出一个整数,表示 [1,n][1,n] 内有多少整齐的数。
数据范围
- 对于 60%60% 的数据,n≤100n≤100;
- 对于 100%100% 的数据,1≤T≤1041≤T≤104,1≤n≤1061≤n≤106。
题解:根据整齐数的定义,凡是1-9 ,10,20,30,。。。100,200,300。。。1000,2000,3000,10000,20000,30000。。。90000
#include<iostream> using namespace std; int a[10001]; int main(){ int t; cin>>t; for(int i=0;i<t;i++){ cin>>a[i]; if(a[i]<=9){ cout<<a[i]; }else if(a[i]<=99){ cout<<9+a[i]/10; }else if(a[i]<999){ cout<<9+9+a[i]/100; }else if(a[i]<9999){ cout<<9+9+9+a[i]/1000; }else{ cout<<9+9+9+9+a[i]/10000; } } }