C 带加法的指数函数

C 带加法的指数函数,c,C,我试图用for循环创建指数函数。所以如果num1是10,num2是2 for (i = 0; i < num1; i++) sum = sum + num2; for (i = 0; i < num2 ; i++) sum2 = sum + sum2; (i=0;i

我试图用for循环创建指数函数。所以如果num1是10,num2是2

for (i = 0; i < num1; i++)
      sum = sum + num2;
for (i = 0; i < num2 ; i++)
      sum2 = sum + sum2;
(i=0;i 总和=总和+num2; 对于(i=0;i重复加法模拟乘法。
重复乘法模仿指数运算

只需要做两个循环,一个在另一个内部:内部循环模拟乘法,外部循环模拟指数运算


编辑:这里有一个递归方法。将其转换为几个循环应该不会太困难

#包括
int mul(int b,int e){
如果(e==0)返回0;
如果(e==1)返回b;
返回b+mul(b,e-1);/*仅限添加*/
}
国际博览会(国际b、国际e){
如果(e==0)返回1;
如果(e==1)返回b;
返回mul(b,世博会(b,e-1));
}
内部主(空){
printf(“3^0是%d\n”,expo(3,0));
printf(“3^1是%d\n”,expo(3,1));
printf(“3^2是%d\n”,expo(3,2));
printf(“3^3是%d\n”,expo(3,3));
printf(“3^4是%d\n”,expo(3,4));
返回0;
}

重复加法模拟乘法。
重复乘法模仿指数运算

只需要做两个循环,一个在另一个内部:内部循环模拟乘法,外部循环模拟指数运算


编辑:这里有一个递归方法。将其转换为几个循环应该不会太困难

#包括
int mul(int b,int e){
如果(e==0)返回0;
如果(e==1)返回b;
返回b+mul(b,e-1);/*仅限添加*/
}
国际博览会(国际b、国际e){
如果(e==0)返回1;
如果(e==1)返回b;
返回mul(b,世博会(b,e-1));
}
内部主(空){
printf(“3^0是%d\n”,expo(3,0));
printf(“3^1是%d\n”,expo(3,1));
printf(“3^2是%d\n”,expo(3,2));
printf(“3^3是%d\n”,expo(3,3));
printf(“3^4是%d\n”,expo(3,4));
返回0;
}

如果您不喜欢我使用/,请自己实现您的FPU

像这样的

double power(int x, int p){
    if(p==0)
        return 1.0;

    double res = x;
    for(int i=1 ; i<p ; ++i)
        res += x;

    return res;
}

long mul(long a, long b){
    if(a==0 || b==0)
        return 0;

    long res = 0;
    for(int i=0 ; i<a ; ++i){
        res += b;
    }
    return res;
}

long fac(long x){
    if(x==0)
        return 1;
    return mul(fac(x-1),x);
}

double exponential(int x, int c) 
{
    double res = 0.0;
    for(int i=0; i<=c;++i)
        res += power(x)/(double)fac(i);
    return res;
}
双电源(整数x,整数p){
如果(p==0)
返回1.0;
双res=x;

对于(inti=1;i,如果您不喜欢我使用/,请自己实现您的FPU

像这样的

double power(int x, int p){
    if(p==0)
        return 1.0;

    double res = x;
    for(int i=1 ; i<p ; ++i)
        res += x;

    return res;
}

long mul(long a, long b){
    if(a==0 || b==0)
        return 0;

    long res = 0;
    for(int i=0 ; i<a ; ++i){
        res += b;
    }
    return res;
}

long fac(long x){
    if(x==0)
        return 1;
    return mul(fac(x-1),x);
}

double exponential(int x, int c) 
{
    double res = 0.0;
    for(int i=0; i<=c;++i)
        res += power(x)/(double)fac(i);
    return res;
}
双电源(整数x,整数p){
如果(p==0)
返回1.0;
双res=x;


对于(int i=1;iHomework?看起来是:)要确认,您是要计算指数(即a到b的幂),还是要计算指数函数(即a到a的幂)?b的幂,所以a^b…但是使用加法。我很难将其放入for循环中?看起来是:)要确认,您是要计算指数(即a到b的幂),还是要计算指数函数(即到a的幂)?b的幂,所以a^b…。但是使用加法。我很难将其放入for循环,因为我尝试使用加法来实现这一点,只是因为你的代表性较低,所以我不会否决你,因为我假设你不了解海关,但你真的不应该给家庭作业问题提供完整的代码。在澄清之后,OP似乎不想要求幂,他/她只是想要权力。有人知道如何使用加法吗?我只是在你代表率低的情况下才尝试使用加法,所以我不会否决你,因为我假设你不了解习惯,但你真的不应该给家庭作业问题提供完整的代码。澄清后,OP似乎不需要求幂假设,他/她只是想要幂。有人知道如何通过加法实现吗?那么对于(i=0;i你如何做一个循环来模拟求幂?在循环中求幂:
val=1;对于(k=0;k
现在
val
base^exponent
。在做这个练习时,你必须注意每次循环中都会不同的基。转换递归函数比我预期的要难一点。那么对于基的值,我可以做value=value+base吗?因为我是尝试使用additionso for(i=0;i如何创建循环来模拟求幂?循环中的求幂:
val=1;for(k=0;k
现在
val
base^exponent
。在做这个练习时,你必须注意每次循环中都会不同的基。转换递归函数比我预期的要难一点。那么对于基的值,我可以做value=value+base吗?因为我是尝试用加法来实现这一点