首页 > 解决方案 > 如何用while循环求幂

问题描述

我有麻烦。就像在描述中一样。如何在 C++ 中做到这一点?老师给了一个练习,我们必须使用三个循环(for,while和do..while),而这个while循环对我来说很奇怪,我在这段代码中有什么问题?

#include <iostream>

using namespace std;

int main()
{
int a, b, c, d;
cin >> a;
cin >> b;
c = a;
d = 1;
while(b < 1){
    c*=a;
}

if(b == 0)
    cout << d;

else
    cout << c;

return 0;
}

动作的结果是相等的a

标签: c++

解决方案


如果我正确理解了您的问题,您想std::pow()使用 do..while 循环创建自己的函数。这可以通过以下方式完成:

float my_pow(float base, unsigned int exp)
{
    if(exp == 0) return 1;
    else if(exp == 1) return base;

    float result = base;

    do
    {
        result *= base;
        --exp;
    }
    while(exp > 1)

    return result;
}


推荐阅读