Notas de algoritmo algoritmo codicioso tarifa de taxi

Requisitos del sujeto

Inserte la descripción de la imagen aquíInserte la descripción de la imagen aquí

Ideas

Analicemos tres situaciones primero

norte precio
n <= 4 10
4 <n <8 10 + 2 * (n-4)
n> = 8 18 + 2,4 * (n-8)

Entre ellos, en el caso de n> = 8, si

  • 8 <n <= 12
    Método 1: Precio = 18 + 2.4 * (n-8) //
    Método 2 más adecuado : Precio = 18 + 10
  • 12 <n <= 16
    Método 1: Precio = 18 + 4 * 2.4 + 2.4 * (n-12)
    Método 2: Precio = 18 + 10 + 2 (n-12) // Más apropiado

Por analogía, para el caso donde n> = 8, primero calcule la parte de 8 y continúe n-8 hasta que la parte restante sea menor que 8.

  • Si la parte restante es mayor que 4, elija un método similar a 12 <n <= 16 y use el algoritmo de 10 + 2 (n-12)
  • De lo contrario, use un método similar a 8 <n <= 12, directamente 2.4 * n

Código

#include <stdio.h>

int main(){
    
    
    
    float n=0;
    while(scanf("%f",&n)&&n!=0){
    
    
        int in=(int)n;
        double rent=0;
        if(n-in!=0)
            in=in+1;
        if(n<=4)
            rent=10;
        else if(n>4&&n<=8)
            rent=10+(n-4)*2;
        else{
    
    
            while(n>=8){
    
    
                rent+=18;
                n-=8;
            }
            if(n<=4)
                rent+=2.4*n;
            else
                rent+=10+(n-4)*2;
        }
        //注意输出格式
        if(rent-(int)rent==0)   printf("%d\n",(int)rent);
        else    printf("%.1lf\n",rent);
    }
    return 0;
}

Supongo que te gusta

Origin blog.csdn.net/Cindy_00/article/details/108522844
Recomendado
Clasificación