我正在尝试使用 C++ 和 Xcode 作为编译器编写一个函数,该编译器将测试 a 是否为回文。当参数是“C++ 天生”类型(例如 int、long、double 等)时,代码运行良好,但我想将该函数用于更大的值。所以我使用了BigInteger类型的参数。但是编译器给出了一个错误就行了
BigInteger q = x - floor(x.toLong()/10)*10
这么说Conversion from 'double' to 'const BigInteger' is ambiguous
。这是整个代码:
#include <iostream>
#include "BigInteger.hh"
using namespace std;
bool isPalindrom(BigInteger x){
long ch = ceil(log10(x.toUnsignedLong())), n[ch];
// cout << floor(log10(x)) + 1 << endl;
for (int i = 0; i <= ch; i++){
BigInteger q = x - floor(x.toLong()/10)*10;
n[i] = q.toInt();
// cout << n[i] << endl;
x /= 10;
}
for (long i = 0; i <= ceil(ch); i++){
if (n[i] != n[ch - i]){
return false;
}
}
return true;
}
我怎么解决这个问题?