n表示长度
n<=8 任何一种方法都可以
n>8:
n%8==0每8个距离重设meter
n%8<=4前(n/8)(整除)8个距离全部都重设meter,剩下的按照每公里2.4的价格
n%8<8前(n/8)(整除)8个距离全部都重设meter,剩下的距离按照前4公里10元剩下的每公里2元.
#include <iostream>
#include <cstdio>
using namespace std;
int main(){
int n;
while (scanf("%d",&n)&&n){
double ans=0;
if(n<=8){
n-=4;
ans=10;
if(n>0){
ans+=n*2;
}
}else if(n%8==0){
ans=n/8*18;
}else if(n%8<=4){
ans=n/8*18+(n%8*2.4);
}else{
ans=(n/8*18)+10+(n%8-4)*2;
}
if(ans==(int)ans){
printf("%d\n",(int)ans);
}else{
printf("%.1lf\n",ans);
}
}
return 0;
}