PATB1057ナンバーゼロワン(20ポイント)

ここに画像の説明を挿入
注:文字がない場合は、「00」を出力すると判断する必要があります。

#include <cstdio>
#include <iostream>
#include <string>

using namespace std;

int xh(char c){
    
    
	if(c>='a' && c<='z') return c-'a'+1;
	if(c>='A' && c<='Z') return c-'A'+1;
	return 0;
}

int main(){
    
    
	string str;
	getline(cin,str);
	int sum = 0;
	for(int i=0; i<str.size(); i++){
    
    
		sum += xh(str[i]);
	}
	
	int zero=0, one=0;
	if(sum == 0){
    
    
		printf("0 0");
		return 0;
	}
	do{
    
    
		if(sum % 2 == 0){
    
    
			zero++;
		}else{
    
    
			one++;
		}
		sum /= 2;
	}while(sum != 0);
	printf("%d %d", zero, one);
	
	return 0;
}

おすすめ

転載: blog.csdn.net/weixin_45964844/article/details/113702119