一、看到題目,我的第一反應是使用自加++,也算是偷懶了
思想:sum=a/3,a=3*sum。即循環3*sum次得到a,sum值也就出來了
代碼:
int div3(unsigned int a)
{
int sum=0;
for(int i=0,r=0;r<=a;)
{
for(int j=0;j<3;j++)
r++;
sum++;
}
return sum--;
}
二、使用庫函數,這個非常簡單,可惜第一時間沒想到,還是從網上看到的
直接調用div(x,y)方法,簡單易用
三、利用數學極限,現在才明白,高等數學不是白學的
a/3=a(1/4+1/16+1/64+...)
原理:1/n=1/(n+1)+1/(n+1)^2+....
a/3=a>>2+a>>4+a>>6+....