C++ 在抛出';std::超出范围';什么():斯托尔 int解决方案::电源(字符串A){ 如果(A==“1”),则返回0; 如果(A=“2”)返回1; long int no=std::stoll(A); 如果(否%2!=0)返回0; no=no/2; 细流ss; ss>A; 返回功率(A); }

C++ 在抛出';std::超出范围';什么():斯托尔 int解决方案::电源(字符串A){ 如果(A==“1”),则返回0; 如果(A=“2”)返回1; long int no=std::stoll(A); 如果(否%2!=0)返回0; no=no/2; 细流ss; ss>A; 返回功率(A); },c++,string,C++,String,查找给定的数字是否为2的幂。 更具体地说,查找给定的数字是否可以表示为2^k,其中k>=1 答:“147573952589676412928”测试用例未通过 在抛出'std::out_of_range'的实例后调用terminate what():stoll这个数字不适合long。 int Solution::power(string A) { if(A=="1") return 0; if(A=="2") return 1; lo

查找给定的数字是否为2的幂。 更具体地说,查找给定的数字是否可以表示为2^k,其中k>=1

答:“147573952589676412928”测试用例未通过 在抛出'std::out_of_range'的实例后调用terminate
what():stoll

这个数字不适合
long
int Solution::power(string A) {
    if(A=="1") return 0;
    if(A=="2") return 1;
    long long int no =std::stoll(A);
    if(no%2 != 0) return 0;
    no = no/2;
    stringstream ss;  
    ss << no;  
    ss >> A;
    return power(A);
}