不使用+、-、*、/和%求a/3

一、看到題目,我的第一反應是使用自加++,也算是偷懶了

思想: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+....

發佈了26 篇原創文章 · 獲贊 1 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章