PAT basic 1057
2017-08-22 20:18
232 查看
#include <iostream> #include <cctype> #include <string> using namespace std; int main() { string s; getline(cin, s); int n = 0; for(int i = 0; i < s.length(); i++) { if(isalpha(s[i])) { s[i] = toupper(s[i]); n += (s[i] - 'A' + 1); } } int cnt0 = 0, cnt1 = 0; while(n != 0) { if(n % 2 == 0) { cnt0++; } else { cnt1++; } n = n / 2; } printf("%d %d", cnt0, cnt1); return 0; } /* 分析:用getline接收一行字符串,对于 字符串的每一位,如果是字母(isalpha), 则将字母转化为大写,并累加(s[i] – ‘A’ + 1) 算出n,然后将n转化为二进制,对每一位 处理,如果是0则cnt0++,如果是1则cnt1++, 最后输出cnt0和cnt1的值~~~ */
相关文章推荐
- PAT (Basic Level) Practise (中文) 1057. 数零壹(20)
- PAT Basic 1057. 数零壹(20)(C语言实现)
- PAT (Basic Level) Practise (中文)1057. 数零壹(20)
- PAT Basic 1013. 数素数 (20)(C语言实现)
- PAT (Basic Level) Practise (中文)1025. 反转链表 (25)
- PAT Basic 1030. 完美数列(25)(C语言实现)
- PAT Basic 1047. 编程团体赛(20)(C语言实现)
- PAT Basic 1063. 计算谱半径(20)(C语言实现)
- PAT Basic Level Practise 1020坑点
- (PAT-Basic)1016. 部分A+B
- 1001. 害死人不偿命的(3n+1)猜想 (PAT basic)
- PAT(basic level) 1020 月饼(25)
- Pat(Basic Level)Practice--1028 (人口普查)
- PAT(basic level) 1026 程序运行时间(15)
- 【PAT_Basic日记】1004 成绩排名
- PAT(basic level) 1040 有几个PAT(25)
- PAT(Basic Level)_1013_数素数
- PAT (Basic Level)1009. 说反话
- PAT(Basic Level)_1044_火星数字
- PAT (Basic Level) Practise (中文)1027. 打印沙漏(20)