我需要一點幫助,我的課程這是印度算法,如果你從來沒有聽說過它。 我可以很容易地做到這一點使用遞歸,但無法計算如何使用循環來解決它?任何暗示或建議?印度算法使用while循環
印度算法:
3^10 = square (3^5)
3^5 = 3 * (3^4)
3^4 = square (3^2)
3^2 = square (3^1)
3^1 = 3 * (3^0)
3^0 = 1
double powerloop(double x, int n)
{
double m=x;
if (n==0)
return 1;
while(n>1)
{
if(n%2==0)
{
m=m*m;
n=n/2;
}
else
{
m=m*x;
n=n-1;
}
}
return m;
}
另外,如果您要求我們檢查這是否有效,我們實際上需要知道印度算法是什麼。 –
同意。谷歌搜索印度算法出現*這篇文章*作爲最重要的結果,我看不到其他有意義的條目。 – BlackVegetable
看起來像複製和粘貼從http://forum.notebookreview.com/programming-homework-questions/426810-how-implement-indian-algorithm-using-while-loop.html - 也有答案 –