我需要帮助编写电源功能。因此,我需要编写一个porogramm,它将在LOOP中以1的幂输出一个表。不使用POW或EXP 输出示例:
0^0 == 1
1^1 == 1
2^2 == 4
3^3 == 27
4^4 == 256
(and so on, up to)
10^10 == 10000000000
不使用Cmath(NO POW或EXP)
例如:
e.g。 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++;
}
}
答案 0 :(得分:0)
这是一个递归函数,可以计算一个提升到整数幂的值
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 :(得分:0)
我认为你现在已经知道了自己问题的答案,但仍然存在;一些提示:
结合两个提示:你需要使用循环来重复乘法;事先知道重复(或迭代)的数量,因此,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';
}