Copa Blue Bridge: Número limpio (usa una cuerda para hacer, ¡súper simple!)

tema

[Descripción del problema] A
   Xiao Ming le disgusta mucho el número 2, incluidos los que contienen el número 2 en los dígitos. Si los dígitos de un número no contienen el número 2, Xiao Ming lo llama un número limpio.
   ¿Cuántos números limpios hay entre los enteros del 1 al n?
[Formato de entrada]
   La primera línea de entrada contiene un número entero n.
[Formato de salida] La
   línea de salida contiene un número entero para indicar la respuesta.
[Entrada de muestra]
30
[Salida de muestra]
   18
[Escala de casos de uso de evaluación y convenciones]
   Para el 40% de los casos de uso de evaluación, 1 <= n <= 10000.
   Para el 80% de los casos de prueba, 1 <= n <= 100000.
   Para todos los casos de medición, 1 <= n <= 1000000.

Ideas para resolver problemas

   Convierta un número de tipo int en una cadena de tipo String, y luego use el método string contains para determinar si la cadena contiene "2". Si lo tiene, no es un número limpio, de lo contrario, cuente ++.

insinuación

  El método contiene de una cadena determina si contiene una cadena y las comillas dobles no se pueden quitar

Código

import java.util.Scanner;

public class Main {
    
    //蓝桥杯要求class命名为Main,且无package
    public static void main(String[] args) {
    
    
        Scanner scanner = new Scanner(System.in);
        int n = scanner.nextInt();
        int count = 0;
        for(int i=1;i<=n;i++){
    
    
            String str = i+"";//转为字符串
            if(str.contains("2")){
    
    
                continue;//不为洁净数continue结束当前for循环
            }
            count++;//为洁净数则count++
        }
        System.out.println(count);
    }
}

Supongo que te gusta

Origin blog.csdn.net/qq_47168235/article/details/108911425
Recomendado
Clasificación