求助巨犇为啥wa了一个点 感觉长度差不多跑的也好慢

P1422 小玉家的电费

CrNidaree @ 2023-09-16 11:57:08



int main(){
    int N;
    cin>>N;
    double m=0; 
    if(N<=150){
    m=N*0.4463;
    }
    if(N>150&&N<=400){
    m=150*0.4463+(N-150)*0.4663;
    }
    else{
    m=150*0.4463+250*0.4663+(N-400)*0.5663;
    }cout<<floor(m*10+0.5)/10.0;    
# }

by algorithm_is_my_GF @ 2023-09-16 12:18:54

代码没问题啊,应该可以ac的,或者试试把floor换成int?


by Terrible @ 2023-09-16 12:30:30

@CrNidaree

①如果 N<=150 会执行最上面的 if 和最下面的 else,最后会判断成 N>400 的用电计算。

floor(m*10+0.5)/10.0 这种保留小数的方式会损失精度,请使用

cout<<fixed<<setprecision(1)<<m;

其中 setprecisioniomanip 库中的标识符。

#include<iostream>
#include<iomanip>
using namespace std;
int main(){
    int N;
    cin>>N;
    double m=0; 
    if(N<=150){
        m=N*0.4463;
    }
    else if(N<=400){
        m=150*0.4463+(N-150)*0.4663;
    }
    else{
        m=150*0.4463+250*0.4663+(N-400)*0.5663;
    }
    cout<<fixed<<setprecision(1)<<m;
    return 0;
}

by CrNidaree @ 2023-09-16 13:06:33

@ThroughBall 还是不行qwq @ThroughBall


by CrNidaree @ 2023-09-16 13:08:13

@Terrible 噢噢难怪一直wa一个点 谢谢巨佬


|