用于电源的C ++程序,但不使用pow功能

时间:2014-03-02 20:36:06

标签: c++

我是C ++中的新手,我正在编写一个C ++程序,要求用户输入两个整数,然后将第一个整数提升到第二个整数指定的幂。例如,如果用户输入5和8,结果将是5下标8,即,数字5将被提升到第八次幂。程序不得使用任何预定义的C ++函数(如pow函数)来执行此任务。该程序应允许用户根据需要执行另一次计算。任何人都可以帮忙

2 个答案:

答案 0 :(得分:4)

我不打算给你任何代码,因为这不会让你真正探索这个概念。相反,你应该使用这个伪代码来实现自己的东西。

创建一个接受两个输入的函数,即基数和指数。

现在有几种方法可以做到这一点。你可以使用有效的位移,但让我们开始简单,不管吗?

answer = base
i = 1
while i is less than or equal to exponent
    answer = answer * base
return answer

简单地循环遍历基数本身。

还有其他关注效率的方法。在这里查看您可能想要尝试的内容:are 2^n exponent calculations really less efficient than bit-shifts?

答案 1 :(得分:3)

  

程序不得使用任何预定义的C ++函数(如pow函数)来执行此任务

您可以使用以下某些c ++代码来计算 x y ,而无需使用任何预定义函数:

int x = 5;
int y = 3;
int result = 1;
for(int i = 0; i < y; ++i)
{
    result *= x;
}

cout << result << endl;

输出:

125

查看工作示例here