提问

P1045 [NOIP2003 普及组] 麦森数

Sonic_DrinKer @ 2024-02-18 00:12:17

printf("%.d\n", (int)(log10(2) * n + 1));
printf("%.0f\n",log10(2) * n + 1);

这两段代码有什么区别?下面的一个样例:

86243

上边输出25962,是正确答案; 下边输出25963,比正确答案大1


by __My0217__ @ 2024-02-18 00:33:34

一个向0取整,一个四舍五入(?


by Sonic_DrinKer @ 2024-03-19 14:45:16

@My0217 这两个应该都是截取的,但是%。0f似乎在n特别大的时候会发生四舍五入


|