PAT Bブラシパス番号1057人の被験者ゼロオン(20分)

ゼロワンナンバー1057(20分)
指定された文字列のためには、すべてのアルファベットのシーケンス番号(1-26 AZ文字に対応するシーケンス番号は、ケース非感受性)が付加されたタイトルの特許請求の範囲を提示する、10 ^ 5の文字列の長さを超えませんNの整数取得、Nその後番号0、番号1のバイナリ表現を分析します。ストリングPAT(基本)所与例えば、の和である文字の数= 71 16 + 20 + 1 + 1 + 2 + 3 + 9 + 19、及び71は3 0.4である、バイナリ1000111あります1。

入力フォーマット:
入力文字列の終わりを入力する行未満10 ^ 5の長さを与えます。

出力フォーマット:
行数は、隙間によって分離された出力0と1の数を有しています。

サンプル入力:
PAT(基本)

出力サンプル:
34

#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
using namespace std;

int main()
{
	string A;
	getline(cin,A);
	int N=0,i;
	for(i=0;i<A.length();i++){
		if(A[i]>='A'&&A[i]<='Z'){
			N+=A[i]-'A'+1;
		}
		if(A[i]>='a'&&A[i]<='z'){
			N+=A[i]-'a'+1;
		}
	}
	vector<int> cnt;
	while(N!=0){
		cnt.push_back(N%2);
		N=N/2;
	}//处理进制问题没必要过多操作,直接运算即可
	int cnt0=0,cnt1=0;
	for(i=0;i<cnt.size();i++){
		if(cnt[i]==0){
			cnt0++;
		}
		if(cnt[i]==1){
			cnt1++;
		}
	}
	cout<<cnt0<<" "<<cnt1;
}
公開された73元の記事 ウォンの賞賛0 ビュー532

おすすめ

転載: blog.csdn.net/derbi123123/article/details/103812329