DEV C++编译器下要用pow函数需要什么样的头文件啊

来源:百度知道 编辑:UC知道 时间:2024/09/25 11:33:07
for(int i=1;i<=9;++i)
for (int j=0;j<=9;++j)
for (int k=0;k<=9;++k){
if (i*100+j*10+k-pow(i,3)-pow(j,3)-pow(k,3)) continue;
cout<<i<<j<<k<<"\n"; }
这个怎么在dev下就是出不来水仙花数啊
还是不行啊
答案都试过了,还是不行啊

pow函数不可以接受int型的值,改后的是这样的:
#include <iostream>
#include <math.h>
using namespace std;
void main()
{
for(float i=1;i<=9;++i)
for (float j=0;j<=9;++j)
for (float k=0;k<=9;++k)
{
if (i*100+j*10+k-pow(i,3)-pow(j,3)-pow(k,3))
continue;
cout<<i<<j<<k<<"\n";
}
}
//float,double,long double都可以。

和在TC下一样,是:
#include<math.h>

要是采用C++风格的,是:
#include<cmath>

对“问题补充”的回答:
因为C里面的pow()函数返回值是double型,因为计算机表示浮点数会有误差的原因,导致在把一个int与一个float或double做相等比较时得不到正确的结果,所以把你的程序稍作修改即可:
if(i*100+j*10+k-(int)(pow(i,3)+pow(j,3)+pow(k,3)) continue;

<math.h>