PAT basic 1057

来源:互联网 发布:诺亚方舟 知乎 编辑:程序博客网 时间:2024/05/29 09:37
#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的值~~~*/ 
原创粉丝点击