B题
c++
大数
class Solution {
public:
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
* @param n string字符串 三角形的长和高
* @return bool布尔型
*/
bool judge(string n) {
// write code here
int k = n.size();
if((n[k-1] - '0')%2 ==0) return false;
vector<int> num;
for(int i = k-1; i>=0; i--) num.emplace_back(n[i] - '0');
int add = 1;
for(int i = 0; i<k; ++i){
num[i] += add;
add = num[i]/10;
num[i]%=10;
}
if(add) {num.emplace_back(1); k++;}
for(; k>0; ){
if(k == 1 && num[0] ==1) return true;
if(num[0] % 2 ==1) return false;
int i = k-1;
add = (num[i]%2) * 10;
if(num[i] == 1) k--;
num[i] /= 2;
for(--i; i >= 0; --i){
num[i] += add;
add = (num[i]%2) * 10;
num[i] /= 2;
}
if(add != 0) return false;
}
return false;
}
};
京公网安备 11010502036488号