Requisitos del sujeto
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;
}