PAT (Basic Level) 1057 数零壹

题意

给定符号串,所有字母不论大小写,按1-26计贡献,求其和的二进制表示下有几个0。

思路

水~

代码

#include <bits/stdc++.h>
using namespace std;
int main() {
	ios::sync_with_stdio(false);
	cin.tie(nullptr);
	cout.tie(nullptr);
	string s;
	getline(cin, s);
	int sum = 0;
	for (auto e : s) {
		if (e >= 'A' && e <= 'Z') sum += e - 'A' + 1;
		if (e >= 'a' && e <= 'z') sum += e - 'a' + 1;
	}
	int cnt1 = 0, cnt0 = 0;
	while (sum) {
		sum % 2 ? cnt1++ : cnt0++;
		sum /= 2;
	}
	cout << cnt0 << ' ' << cnt1 << '\n';
	return 0;
} 

HINT

不定时更新更多题解,Basic Level 全部AC代码,详见 link ! ! !

发布了71 篇原创文章 · 获赞 15 · 访问量 3248

猜你喜欢

转载自blog.csdn.net/abcdefbrhdb/article/details/104623631
今日推荐