завершение вызывается после создания экземпляра ‘std::out_of_range’ что(): stol

#c #string

Вопрос:

 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);
}
 

Найдите, является ли данное число степенью 2 или нет.
Более конкретно, найдите, может ли данное число быть выражено как 2^k, где k >= 1.

A : «147573952589676412928» тестовый случай, не прошедший завершение, вызывается после создания экземпляра «std::out_of_range» что(): stoll

Комментарии:

1. Это число не подходит long long .