一道很基礎的題,答案是:(x+n-1)/n
下面給出證明:
1. 設x=kn,k爲整數,即x爲n的整數倍。則(x+n-1)/n=(kn+n-1)/n=((k+1)n-1)/n,此時分子沒有達到n的k+1倍,但大於等於n的k倍,默認計算取下整則爲k。符合要求。
2.設x=kn+m,k爲整數,m爲整數且0<m<n。則(x+n-1)/n=(kn+m+n-1)/n=((k+1)n+m-1)/n。此時分子的大於等於(k+1)n,小於(k+2)n,按照默認計算應該爲k+1。符合要求。
在C語言中整數除法取的既不是Floor也不是Ceiling,無論操作數是正是負總是把小數部分截掉,在數軸上向零的方向取整(Truncate toward Zero)。