循环中的幂函数

Power function in a loop

本文关键字:函数 循环      更新时间:2023-10-16

我需要帮助写幂函数。所以,我需要写一个程序,这将输出一个表从1到10在一个循环电源。不使用能量或经验输出示例:

0^0 == 1
1^1 == 1
2^2 == 4
3^3 == 27
4^4 == 256
(and so on, up to)
10^10 == 10000000000

NOT USING Cmath (NO POW or EXP)

例如:

。Power(3.0, 5)将返回243,因为3*3*3*3*3 = 243例如,power(173,0)将返回1,因为任何数字的0次幂都是1。

我做了这个简单的循环,但是我不知道如何在其中插入幂公式。我还在考虑while循环

#include <iostream>
#include <string>
using namespace std; 
int main(){
    int number = 0, tot;
    for (int table = 0; table < 10; table++)
    {
        tot = number * table;
        cout << tot << endl;
        number++;
    }    
}

这是一个递归函数,可以计算一个整数次幂

double power(double base, unsigned int exp)
{
    if (exp == 0)
    {
        return 1.0;
    }
    else
    {
        return base * power(base, exp - 1);
    }
}

这样做的迭代方法是

double power(double base, unsigned int exp)
{
    double product = 1.0;
    for (unsigned int i = 0; i < exp; ++i)
    {
        product *= base;
    }
    return product;
}

你可以用像

这样的东西来测试这两种方法
int main()
{
    std::cout << power(5, 3);
}

输出
125

我想你现在已经知道你自己问题的答案了,但仍然;一些提示:

  1. 取幂是基数的重复乘法,重复次数由指数定义。
  2. 在c++或任何现代编程语言中,循环允许重复某些代码块:当迭代次数事先已知时,使用for循环,否则使用while循环。

结合两个提示:您需要使用循环来重复乘法;重复(或迭代)的数量是预先知道的,因此,for循环将是最好的。


int exponentiation(int base, int exponent) {
    int result = 1;
    for (int i = 0; i < exponent; ++i)
        result = result * base;
    return result;
}

注意:这只适用于带正指数的整数求幂!


你可以在for循环中调用这个函数,让它计算你想要的值:

#include <iostream>
int main(int argc, char** argv) {
    for(int i = 0; i <= 10; ++i)
        std::cout << exponentiation(i, i) << 'n';
}