1057 数零壹

题目

1057 数零壹

思路

本题分为两大步,第一步是求出序号和,先把大写转为小写,如果是字母的话,就统计序号;第二步是求0和1的个数,一开始第二个测试点不通过,把视为 N 不存在这种情况删掉后才通过。

代码

#include
#include
#include
using namespace std;
int main()
{
	string a;
	getline(cin, a);
	int len = a.length();
	int t[26];
	int sum = 0;
	for (int i = 0;i < len;i++)
	{
		a[i] = tolower(a[i]);
		if (islower(a[i]))
		{
			t[i] = a[i] - 'a' + 1;
			sum = sum + t[i];
		}
	}
	int yu;
	int zero = 0, one = 0;
	while (sum != 0)
	{
		yu = sum % 2;
		if (yu == 0)
			zero++;
		else
			one++;
		sum = sum / 2;
	}
	cout << zero << " " << one;
	return 0;
}

你可能感兴趣的:(算法)