我被告知在while循环中实现函数而不是递归函数.到目前为止,我总是得到错误的答案.任何关于我犯错误的指标都将受到赞赏.我正在尝试计算2 ^ 12,但到目前为止,每当我运行程序时它给了我4.原始问题然后我创建这个线程已经解决了.但我有一个与前一个问题有关的新问题,但需要采用不同的方法
#include <stdio.h>
double powerloop(double x, int y, double help)
{
while(y!=0)
{
if((y%2)==0)
{
x=x*x;
y=y/2;
}
if((y%2)==1)
{
help=help*x;
x=x*x;
y=(y-1)/2;
}
if(y==1)
{
x=x*help;
}
return x;
}
}
int main(void){
printf("Using powerloop to calculate 2^12: %f \n", powerloop(2, 12, 1));
return 0;
}
Run Code Online (Sandbox Code Playgroud)