警钟敲烂! 警示后人!
查看原帖
警钟敲烂! 警示后人!
523754
GavinCayne楼主2023/7/26 21:43

遇到乘方运算请大家避开万恶的pow()函数

写三次相乘能过:

if(opt)cout<<num1<<" "<<num2<<endl<<(ans*ans*ans)/4;
else cout<<num1<<endl<<(ans*ans*ans)/4;

写pow()的代码:

if(opt)cout<<num1<<" "<<num2<<endl<<(pow(ans,3))/4;
else cout<<num1<<endl<<(pow(ans,3))/4;

输第一个样例时你会发现声望值为6.75,易证pow()的类型会强制转化为浮点。

当你像本蒟蒻一样试图用取整函数时,得到如下代码:

if(opt)cout<<num1<<" "<<num2<<endl<<floor((pow(ans,3))/4);
else cout<<num1<<endl<<floor((pow(ans,3))/4);

你满怀信心和对pow()的信任,按下提交,你会成功听取WA声一片 来输输第一个样例:

20
783 255 374
255 328 994
271 543 760
543 994 543
954 271 760
954 543 255
543 271 271
954 783 760
374 954 662
271 994 760
271 543 994
760 783 271
374 662 662
783 954 328
543 271 271
954 783 783
954 760 255
374 994 760
783 374 662
374 783 255

恭喜,仁慈的pow函数帮你把答案转成了科学计数法。输出结果:1.20012e+008

感谢pow,下次不要了(没有下次,再也不用了什么玩意**%@!#%&^)

2023/7/26 21:43
加载中...