import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
while (sc.hasNext()) {
int test = sc.nextInt();//测试组数
while(test-- > 0){
int n = sc.nextInt(); //所要找的范围1到n
long cnt = 0; //记录平凡数个数
/*
1到10中有九个平凡数
10到100也有九个平凡数
100到1000也有九个平凡数
。。。
可知每上升十倍,多九个平凡数
*/
for (int i = 1; i <= 9; i++) {
long t = i; //t代表了可能的所有个位数:1,2,3,4,5,6,7,8,9
while (n>=t){
cnt++;
t = t * 10 + i;
//例如n=100
//则每次的加i就相当于
//11,22,33,44,。。。。
//记录每上升十倍中的所有平凡数(每十倍九个)
//然后依次让其与n比较,以免忽略某些答案
}
}
System.out.println(cnt);
}
}
}
}
CodeForces-1520B
最新推荐文章于 2024-09-15 19:46:31 发布