PengPeng2 @ 2024-08-27 15:11:11
#include <bits/stdc++.h>
using namespace std;
int main(){
long double jv,bike_s,walk_s;
cin>>jv;
bike_s = jv / 3.0 + 50;
walk_s = jv / 1.2;
if(bike_s < walk_s){
cout<< "Bike" << endl;
}else if (bike_s > walk_s ){
cout << "Walk" << endl;
}else{
cout << "All"<< endl;
}
return 0;
}
by XYY62012 @ 2024-08-27 15:18:33
@PengPeng2 把 long double
改成 double
by luogu_00 @ 2024-08-29 11:17:34
#include<bits/stdc++.h>
using namespace std;
int main(){
long double llf=1.0/3.0;
cout<<fixed<<setprecision(20)<<llf;
return 0;
}
的输出是0.33333333333333333333
。
#include<bits/stdc++.h>
using namespace std;
int main(){
double lf=1.0/3.0;
cout<<fixed<<setprecision(20)<<lf;
return 0;
}
的输出是0.33333333333333331483
。
大家可以自己用C++运行一下试试。
by chenzhishuo2012 @ 2024-09-03 07:33:26
大哥,用double会有精度误差,还有一些是浮点数类型的函数,比如:pow(),ceil(),floor()等等,在使用这些函数时需要注意,如果是一个没有超过定义范围的浮点数中较大的数,就会出现精度误差,可以采用别的方法,进行运算。
by chenzhishuo2012 @ 2024-09-03 07:33:42
#include<bits/stdc++.h>
using namespace std;
int a;
int main(){
cin>>a;
if(1.0*a/1.2>50+1.0*a/3.0)cout<<"Bike"<<endl;
else if(1.0*a/1.2<50+1.0*a/3.0)cout<<"Walk"<<endl;
else cout<<"All"<<endl;
return 0;
}