• PTA 乙级 1057 数零壹 (20分) C++


    思路:getline获取一行字符串,之后利用字母范围,字母 - ‘a’('A') + 1,得到字母序号,求和,对求和结果用除二取余的方法对0和1计数

    测试点0,4 :用string定义的要小心,输入的数据(测试点0和4)里有带空格的,所以这种情况下就不能只是单纯的用cin输入了(输入空格,Tab,回车则结束输入),而要用getline(cin,string变量名)。

    测试点2:不能用do-while循环数0和1(如果sum = 0,则会多数0的个数),只能用while

     1 #include<iostream>
     2 
     3 using namespace std;
     4 
     5 int main() {
     6     string s;
     7     int sum = 0;
     8     int one = 0, zero = 0;
     9     getline(cin, s);                
    10     for (int i = 0; i < s.size(); ++i) {
    11         if (s[i] <= 'z' && s[i] >= 'a') {            //A~Z a~z两种情况
    12             sum += s[i] - 'a' + 1;
    13         }
    14         else if (s[i] <= 'Z' && s[i] >= 'A') {
    15             sum += s[i] - 'A' + 1;
    16         }
    17     }
    18     while (sum > 0) {
    19         if (sum % 2 == 0) one++;
    20         else zero++;
    21         sum /= 2;
    22     } 
    23     cout << one << ' ' << zero;
    24     return 0;
    25 }

    默默地一点点变强,细节决定成败
  • 相关阅读:
    Boostrap响应式与非响应式
    Linux文件处理命令
    Linux各目录作用
    linux系统安装
    并发编程之基础( 五)
    Extjs自定义验证介绍
    javascrict中innerhtml和innerText的关系
    List泛型的应用
    winform项目改项目名称
    math.random用法
  • 原文地址:https://www.cnblogs.com/SCP-514/p/13551724.html
Copyright © 2020-2023  润新知