PAT B 제로 원 번호 1057 (20 분)

제로 원의 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;
}```
게시 된 139 개 원래 기사 · 원 찬양 67 ·은 10000 +를 볼

추천

출처blog.csdn.net/qq_43422111/article/details/104297216