将整数提升到Xth幂

时间:2013-12-21 11:35:29

标签: c++ function loops exponentiation

响应此提示:

  

编写一个返回基指数值的函数integerPower( base, exponent )。例如,integerPower( 3, 4 ) == 3 * 3 * 3 * 3。假设exponent是正整数,非零整数,base是整数。函数integerPower应使用forwhile来控制计算。不要使用任何数学库函数。

我写了这个程序:

#include <iostream>
#include <conio.h>
using namespace std;

int integer (int a, int b) {
  int e;

  for (int i = 1; i <= b; i++)
    e *= a;

  return (e);
}

int main () {
  cout << "enter number and exponent";
  cin >> num >> exp;
  cout << num << "to the power" << exp << "is" <<;
  int num, exp, n;
  integer (num, exp, n);
  getch ();
  return 0;
}

由于某种原因,无论integer (int a, int b)a的值是什么,函数b都会返回0。为什么呢?

4 个答案:

答案 0 :(得分:3)

您应该将e初始化为1。

int e = 1;

另外,您没有在正确的位置声明numexp的类型。

int main () {
  cout << "enter number and exponent";
  int num, exp;
  cin >> num >> exp;
  cout << num << "to the power" << exp << "is" << integer (num, exp); // remove the third parameter
  getch ();
  return 0;
}

答案 1 :(得分:0)

在函数integer内,初始化e,如下所示:

int e = 1;

另外,请在int num, exp, n;声明之前移动cin

答案 2 :(得分:0)

您可以在其他答案中阅读,您必须在main函数中声明num和exp变量,并在函数integer中将e初始化为1。但是你不需要使用命名空间std,只需将std ::添加到其成员的引用中,比如std :: cin,std :: cout,你的代码就会更清晰了。干杯!

答案 3 :(得分:0)

首先,不清楚为什么等于0的指数被排除在可接受的值之外。我会按照以下方式编写函数

int integerPower( int base, unsigned int exponent )
{
   int result = 1;

   while ( exponent-- != 0 ) result *= base;

   return ( result );
}