题目:https://pintia.cn/problem-sets/994805260223102976/problems/994805270914383872
坑点:使用do…while第三个测试点会过不去,不知道为啥
代码
#include<cctype>#include<algorithm>#include<iostream>#include<string>using namespace std;int main(){string str;getline(cin, str);int sum = 0;for(int i = 0; i < str.size(); i++){if(str[i] <= 'Z' && str[i] >= 'A') sum += str[i] - 'A' + 1;else if(str[i] <= 'z' && str[i] >= 'a') sum += str[i] - 'a' + 1;}int num_of_one = 0, num_of_zero = 0;while(sum!=0){if(sum % 2 == 1) num_of_one++;else num_of_zero++;sum /= 2;}/*do{if(sum % 2 == 1) num_of_one++;else num_of_zero++;sum /= 2;}while(sum != 0);*/printf("%d %d", num_of_zero, num_of_one);}
