小编Stu*_*pid的帖子

在'while循环'中实现印度算法.我做错了什么?

我被告知在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)

c recursion

1
推荐指数
1
解决办法
116
查看次数

标签 统计

c ×1

recursion ×1