http://www.Sina.com/http://www.Sina.com /
# include bits/stdc.husingnamespacestd; typedef long ll; int main () lla,b; scanf('%lld%lld )、a、b ); llans=(ll ) Ceil ) ) double ) a/b; printf(%lld(n ),ans ); 返回0; } 前往:我自己搭建的博客
a=10000000000000
b=9999999999
如果要实现(a/b)向上取整的运算,通常可以使用ceil()函数,即如下代码:
但是,最近在做题过程中,碰到了一些极端数据,使用上面的方法会出错。例如:
# include bits/stdc.husingnamespacestd; int main () printf(%lf(n ),ceil ) 1.000000000001 ); //2printf('%lf(n ),ceil ) 1.0000000000001 ); //1printf('%lf(n ),ceil ) 0.000000000000000001; //1返回0; } 正确答案为2,但程序输出为1。
# include bits/stdc.husingnamespacestd; typedef long ll; int main () lla,b; scanf('%lld%lld )、a、b ); ll ans=a%b? a/b 1 : a/b; printf(%lld(n ),ans ); 返回0; () ) ) ) )。