zoukankan      html  css  js  c++  java
  • PAT (Basic Level) Practice (中文) 1057 数零壹 (20分)

    1.题目

    给定一串长度不超过 10​5​​ 的字符串,本题要求你将其中所有英文字母的序号(字母 a-z 对应序号 1-26,不分大小写)相加,得到整数 N,然后再分析一下 N 的二进制表示中有多少 0、多少 1。例如给定字符串 PAT (Basic),其字母序号之和为:16+1+20+2+1+19+9+3=71,而 71 的二进制是 1000111,即有 3 个 0、4 个 1。

    输入格式:

    输入在一行中给出长度不超过 10​5​​、以回车结束的字符串。

    输出格式:

    在一行中先后输出 0 的个数和 1 的个数,其间以空格分隔。

    输入样例:

    PAT (Basic)
    

    输出样例:

    3 4

    2.题目分析

    itoa进制转换不是库里的函数,VS可以用,但是PTA不行……

    自己直接算了

    3.代码

    #include<iostream>
    #include<cstdlib>
    #include<cstdio>
    #include<cstring>
    #include<string>
    using namespace std;
    string list;
    int main()
    {
    	int sum = 0;
    	getline(cin, list);
    	for (int i = 0; i<list.length(); i++)
    	{
    		if (list[i] >= 'A'&&list[i] <= 'Z')
    			sum += list[i] - 64;
    		else if (list[i] >= 'a'&&list[i] <= 'z')
    			sum += list[i] - 96;
    	}
    	int zero = 0, one = 0;
        while(sum>0)
    	{
            if(sum%2==1)one++;
            else zero++;
            sum/=2;
        }
    	printf("%d %d", zero, one);
    
    }
  • 相关阅读:
    HDU 1098 Ignatius's puzzle 也不大懂
    HDU 1099 Lottery
    图算法-Prime
    并查集
    CSS笔记2
    css笔记1
    HDU 5019 Revenge of GCD
    POJ 2255 Tree Recovery
    判断两条线段是否相交
    PAT 数列求和-加强版   (20分)(简单模拟)
  • 原文地址:https://www.cnblogs.com/Jason66661010/p/12788934.html
Copyright © 2011-2022 走看看