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