打车遇到一个司机,司机的里程器被调动过,遇到含的的数字就跳过,
例如:
23后直接到25,
39后直接到50,
399后直接到500;
输入只有一行数字N,表示里程数,输出实际费用
import java.util.Scanner;
// 解1
public class Carf {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int licheng = sc.nextInt();
if (licheng == 0) {
System.out.println(licheng);
sc.close();
}
int shijifeiyong = 0;
while (licheng > 0){
if (!String.valueOf(licheng).contains("4")) {
shijifeiyong++;
licheng-=1;
}
}
System.out.println(shijifeiyong);
//System.out.println(test01(licheng ));
sc.close();
}
//解2
public static int test01(int n) {
int ans = 0;
int tmp = 0;
int k = 0;
int j = 1;
while (n > 0) {
if (n % 10 > 4) {
tmp = j + (n % 10 - 1) * k;
} else {
tmp += (n % 10) * k;
}
k = k * 9 + j;
j *= 10;
n = (int) Math.floor(n / 10.0);
}
return ans - tmp;
}
}