快乐的生活......
数字游戏 Time Limit:1000MS Memory Limit:1024K
5 4 16 27 0
0 0 2 2 4 2 3 3
posted on 2008-01-20 13:30 飛天 阅读(1585) 评论(2) 编辑 收藏 引用 所属分类: ACM
为什么我提交总是通不过,下面是错误提示 (9) : error C2668: “sqrt”: 对重载函数的调用不明确 VC8\include\math.h(581): 可能是“long double sqrt(long double)” VC8\include\math.h(533): 或“float sqrt(float)” VC8\include\math.h(128): 或“double sqrt(double)” 试图匹配参数列表“(int)”时 (16) : error C2668: “pow”: 对重载函数的调用不明确 VC8\include\math.h(575): 可能是“long double pow(long double,int)” VC8\include\math.h(527): 或“float pow(float,int)” VC8\include\math.h(489): 或“double pow(double,int)” 试图匹配参数列表“(int, int)”时 (21) : error C2668: “pow”: 对重载函数的调用不明确 VC8\include\math.h(575): 可能是“long double pow(long double,int)” VC8\include\math.h(527): 或“float pow(float,int)” VC8\include\math.h(489): 或“double pow(double,int)” 试图匹配参数列表“(int, int)”时 (36) : error C2668: “pow”: 对重载函数的调用不明确 VC8\include\math.h(575): 可能是“long double pow(long double,int)” VC8\include\math.h(527): 或“float pow(float,int)” VC8\include\math.h(489): 或“double pow(double,int)” 试图匹配参数列表“(int, int)”时 回复 更多评论
@dengxp 以上程序是在Dev C++ 4.9.9.2上編譯。 在vs2005里sqrt,pow找不到對應的重載函數,所以要修改一下: #include "stdafx.h" #include <iostream> #include <math.h> using namespace std; #define MAX 50 void solve(int number) { int k=sqrt((float)number); for(int i=k;i>1;--i) { int j=2; bool loop=true; while(loop) { if(pow((float)i,j)==number) { cout<<i<<" "<<j<<endl; return; } else if(pow((float)i,j)>number) loop=false; else j++; } } cout<<0<<" "<<0<<endl; } int main() { int input[MAX]; int len=0; while((cin>>input[len])&&input[len]!=0) { if(input[len]<0||input[len]>pow(10.0,8)) continue; len++; } for(int i=0;i<len;++i) solve(input[i]); return 0; } 回复 更多评论
Powered by: C++博客 Copyright © 飛天