Copa Lanqiao: número en aumento digital (convertido a versión de matriz de caracteres) (fácil de entender)

tema

[Descripción del problema]
   Si cualquier dígito de un número entero positivo no es mayor que el dígito adyacente a la derecha, se le llama un número creciente de dígitos. Por ejemplo, 1135 es un número creciente de dígitos y 1024 no es un número creciente de dígitos.
Dado un entero positivo n, ¿cuántos dígitos aumentan entre los enteros 1 an?
[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]
   26
[Escala y convención
   de casos de uso de evaluación ] Para el 40% de los casos de uso de evaluación, 1 <= n <= 1000.
   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

  Opinión personal humilde: no pensé en la recursividad cuando lo escribí, así que al resolver el problema, convertí el número en una matriz de tipo char para juzgar. (Personalmente creo que debería ser más fácil de entender que la recursividad)

Precauciones

   1 a 9 no requieren juicio

responder

  n = 1000: 219
  n = 100000: 2001
  n = 1000000: 5004

Código


import java.util.Scanner;

public class Main {
    
    
    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++){
    
    
            if(f(i)){
    
     //调用f
                count++;
            }
        }
        System.out.println(count);
    }

    public static boolean f(int i){
    
    
        if(i<10){
    
     //1到9不需要进行判断
            return true;
        }else{
    
    
            char []s =(i+"").toCharArray();//转换为char数组
            for(int j=0;j<s.length-1;j++){
    
     //判断
                if(s[j]>s[j+1]){
    
    
                    return false;
                }
            }
        }
        return true;
    }
}

Supongo que te gusta

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