读书人

提交时它说Compilation Error提示说

发布时间: 2013-11-25 13:22:27 作者: rapoo

提交时它说Compilation Error,提示说pow()函数问题?高手帮看一下
#include <iostream>
#include<cmath>
using namespace std;

bool judge (int n);
int getx (int n);
int getk (int n);

int main ()
{
int n;
while (cin>>n)
{
if(n<0||n>pow(10,8))
{
exit(1);
}
else if(n==0)
{
break;
}

else if (judge(n))
{
cout<<getx(n)<<" "<<getk(n)<<endl;
}
else
{
cout<<"0 0"<<endl;
}
}
return 0;
}

bool judge (int n)
{
for (int a=sqrt(n);a>1;a--)
{

for (int i=2; pow(a,i) <=n;i++)
{
if ( pow(a, i)==n )
{
return true;
}
}
}
return 0;

}
int getx(int n)
{
for (int a=sqrt(n);a>1;a--)
{

for (int i=2;pow(a, i)<=n;i++)
{
if (pow(a ,i)==n)
{
return a;
}
}
}
return 0;
}

int getk(int n)
{
for (int a=sqrt(n);a>1;a--)
{

for (int i=2;pow(a, i)<=n;i++)
{
if (pow(a ,i)==n)
{
return i;
}
}
}
return 0;
}

[解决办法]
需要链接数学库libm,例如g++ -lm main.cpp

引用:
#include <iostream>
#include<cmath>
using namespace std;

bool judge (int n);
int getx (int n);
int getk (int n);

int main ()
{
int n;
while (cin>>n)
{
if(n<0
[解决办法]
n>pow(10,8))
{
exit(1);
}
else if(n==0)
{
break;
}

else if (judge(n))
{
cout<<getx(n)<<" "<<getk(n)<<endl;
}
else
{
cout<<"0 0"<<endl;
}
}
return 0;
}

bool judge (int n)
{
for (int a=sqrt(n);a>1;a--)
{

for (int i=2; pow(a,i) <=n;i++)
{
if ( pow(a, i)==n )
{
return true;
}
}
}
return 0;

}
int getx(int n)
{
for (int a=sqrt(n);a>1;a--)
{

for (int i=2;pow(a, i)<=n;i++)
{
if (pow(a ,i)==n)
{
return a;
}
}
}
return 0;
}

int getk(int n)
{
for (int a=sqrt(n);a>1;a--)
{

for (int i=2;pow(a, i)<=n;i++)
{
if (pow(a ,i)==n)
{
return i;
}
}
}
return 0;
}

[解决办法]
#include <math>
[解决办法]
以后直接贴编译器提示的错误信息。这样更容易看出问题所在,更能迅速解决问题。
[解决办法]
看不出有什么问题
[解决办法]
提交的时候?搞竞赛的?如果是搞竞赛的话,目测exit(1)这句有问题

读书人网 >C++

热点推荐