原题:程序员小明打了一辆出租车去上班。出于职业敏感,他注意到这辆出租车的计费表有点问题,总是偏大。
出租车司机解释说他不喜欢数字4,所以改装了计费表,任何数字位置遇到数字4就直接跳过,其余功能都正常(23->25,399->500(400、401、402、……))。
你能根据计费表的数字,计算出实际的数字吗?
示例1、input 5 output 4
示例2、input 17 output 15
示例3、input 100 output 81
示例4、input 500 output 324
思路:把遇到含4的数字的个数减去就行
- import java.nio.charset.StandardCharsets;
- import java.util.Scanner;
- public class Main20 {
- public static void main(String[] args) {
- Scanner scanner = new Scanner(System.in, StandardCharsets.UTF_8.name());
- while (scanner.hasNextInt()){
- // 错误的价格即黑司机向乘客索要的钱
- int test = scanner.nextInt();
- // 输出乘客实际应该支付的金额
- System.out.println(test - count4(test));
- }
- }
- public static int count4(int test){
- int result =0;
- for(int i =0; i<= test;i++){
- String temp = i + "";
- if(temp.contains("4")){
- result++;
- }
- }
- return result;
- }
}