注册 登录
编程论坛 C++教室

[求助]请问要求X的N次方如何实现?

gshj_84 发布于 2006-12-16 14:44, 5872 次点击

要求 X 的 n 次方,X是浮点型,n是整形,我写的如下,但结果不对劲,怎么弄?

main下面的:

float X;
int n;

cout<<"请输入任意一个浮点类型的数:"<<endl;
cin>>X;

cout<<"请输入任意整形次方数:"<<endl;
cin>>n;

for(int i = 0; i <= n; i++)
{
X*=X;
}

cout<<"所求值为:\n"<<X<<endl;

10 回复
#2
qzao222006-12-16 16:44
X=X*X经过N次循环后成什么了~!
假如说要求5的四次方,你的X=X*X就是
25=5*5;625=25*25;390625=625*625...........
应该先把X赋值给另外一个数,比如Y;
Y=X;for(i=1;i<=n;i++)//i等于0就多执行了一次循环.
X=Y*X;
然后输出X的值就可以了;
#3
yuyunliuhen2006-12-16 21:30

#include<iostream>
using namespace std;
void main()
{ float x;
int n,i;
float sum = 1.00;
cout<<"请输入任意一个浮点类型的数:"<<endl;
cin>>x;

cout<<"请输入任意整形次方数:"<<endl;
cin>>n;
for(i=1;i<n+1;i++)
{
x = sum*x;
sum = x;
}
cout<<"所求值为:\n"<<x<<endl;
}





[此贴子已经被作者于2006-12-19 11:17:41编辑过]

#4
gshj_842006-12-17 19:18
哈,受教了,不过我发现调用&lt;cmath&gt;简单的很吼吼。。。
#5
peswe2006-12-17 22:00

楼上的示范下撒,我还不会呢!
你会了也要考虑下我们这些菜鸟啊!!!!~~~~~~~~
谢了先!!!!

#6
wangxiang2006-12-17 22:52
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
double d = pow(2.,3.);
cout<<d<<endl;
system("pause");
return 0;
}
#7
yuyunliuhen2006-12-19 11:22
还不知道cmath 有这个功能,楼上可否解释一下啊。
double d = pow(2.,3.);

system("pause");
谢谢啦。
#8
gshj_842006-12-25 10:58
pow()就是&lt;cmath&gt;里一个函数,专门算次方的,比如pow(2,3),就是求2的3次方,逗号前面是原数,后面是指数。
#9
yuyunliuhen2006-12-25 14:10

函数都忘的差不多了。
谢了!
#10
shengwumozhe2006-12-25 16:32
x等于0,x<等于n,x加加(有些符号打不了)

0-n是n加1个数
除了楼上几位高手说到的,
楼主应该注意下循环次数.
按照你的写法,假如设n为3
则x经过4次自乘是x的五次方- -
#11
流云追风2010-07-11 18:36
请问如果N超级大如何处理,例如N=100。。。
1