제로 원의 1057 수 (20 점)
이 질문은 N 정수를 얻기 위해 추가 된 번호의 모든 문자 (숫자가 1-26 AZ 문자로 사례를 구분 해당)에 당신을 필요로 특징 (105)를 초과하지 않는 문자열 길이의 문자열을 감안할 때, 다음 바이너리 N 분석 0은 얼마나 하나, 얼마나 많은 나타냅니다. 예를 주어진 문자열 PAT (기본)의 경우, 문자의 개수의 합이다 : 16 + 20 + 1 + 1 + 2 3 + 9 = 71 + 19, 71, 즉 3 0.4 1,000,111 이진이다 + 1.
입력 형식 :
주어진 입력 행 길이 문자열의 끝을 입력 (105)을 초과하지 않는다.
출력 형식 :
행 사이에 공간에 의해 분리 출력 번호 0과 1의 개수를 갖는다.
샘플 입력 :
PAT (기본)
샘플 출력 :
34
저자 : CHEN, 왕위
단위 : 절강 대학
시간 제한 : (200) MS
메모리 제한 : 64메가바이트
코드 길이 제한 : 16킬로바이트
#include <iostream>
using namespace std;
int main(){
string input;
long long sum = 0;
int num_0,num_1;
num_0 = num_1 = 0;
getline(cin,input);
for (int i = 0; i < input.length(); ++i) {
if(input[i] <= 'z' && input[i] >= 'a')
sum += int(input[i] - 'a' + 1);
if(input[i] <= 'Z' && input[i] >= 'A')
sum += int(input[i] - 'A' +1);
}
while(sum){
if(sum % 2)
num_1++;
else
num_0++;
sum /= 2;
}
cout<<num_0<<" "<<num_1;
return 0;
}```