题目:https://pintia.cn/problem-sets/994805260223102976/problems/994805270914383872
坑点:使用do…while第三个测试点会过不去,不知道为啥

代码

  1. #include<cctype>
  2. #include<algorithm>
  3. #include<iostream>
  4. #include<string>
  5. using namespace std;
  6. int main(){
  7. string str;
  8. getline(cin, str);
  9. int sum = 0;
  10. for(int i = 0; i < str.size(); i++){
  11. if(str[i] <= 'Z' && str[i] >= 'A') sum += str[i] - 'A' + 1;
  12. else if(str[i] <= 'z' && str[i] >= 'a') sum += str[i] - 'a' + 1;
  13. }
  14. int num_of_one = 0, num_of_zero = 0;
  15. while(sum!=0){
  16. if(sum % 2 == 1) num_of_one++;
  17. else num_of_zero++;
  18. sum /= 2;
  19. }
  20. /*do{
  21. if(sum % 2 == 1) num_of_one++;
  22. else num_of_zero++;
  23. sum /= 2;
  24. }while(sum != 0);*/
  25. printf("%d %d", num_of_zero, num_of_one);
  26. }