import java.util.Scanner;
/**
* Main.注意考虑到边界情况与特殊情况
* @author : cxc
**/
public class Main {
public static int getTennum(int num,int len){
String numstr = num+"";
String mynum = "";
for(int i=0;i<len;i++){
mynum+=numstr;
}
return Integer.valueOf(mynum);
}
/**
* @param num 10的倍数
* @return
*/
public static int caculate(int num){
String numstr = num+"";
int len = numstr.length();
int result = 0;
result += 9 * (len-1);
//单独计算,比如len个1、2、3和4
for(int i=1;i<=9;i++){
if(getTennum(i,len) > num){
break;
}else {
result++;
}
}
return result;
}
//忽略末尾为p的情况
public static void main(String[] args) {
Scanner in = new Scanner(System.in, "utf-8");
int n = in.nextInt();
for (int i = 0; i < n; i++) {
int age = in.nextInt();
if (age < 10) {
System.out.println(age);
} else {
//简化时间
//计算num之前的所有个数
int num = (age / 10) * 10;
int count = caculate(num);
//最多十个数
for (int k = num; k <= age; k++) {
String kstr = k + "";
int countflag = 0;
char[] kchar = kstr.toCharArray();
for (int j = 1; j < kchar.length; j++) {
if (kchar[j] != kchar[0]) {
countflag = 1;
break;
}
}
if (countflag == 0) {
count++;
}
}
System.out.println(count);
}
}
}
}
(CODEFORCE)Problem-1277A. Happy Birthday, Polycarp!
猜你喜欢
转载自blog.csdn.net/JAck_chen0309/article/details/103630717
今日推荐
周排行