zoukankan      html  css  js  c++  java
  • 题解报告:hdu 2030 汉字统计

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2030

    Problem Description
    统计给定文本文件中汉字的个数。
    Input
    输入文件首先包含一个整数n,表示测试实例的个数,然后是n段文本。
    Output
    对于每一段文本,输出其中的汉字的个数,每个测试实例的输出占一行。
    [Hint:]从汉字机内码的特点考虑~
    Sample Input
    2
    WaHaHa! WaHaHa! 今年过节不说话要说只说普通话WaHaHa! WaHaHa!
    马上就要期末考试了Are you ready?
    Sample Output
    14
    9
    解题思路:这道题主要考察汉字机内码,了解汉字机内码的特点之后这题就是水题了。汉字采用的是扩展编码,一般占用2个字节,且其字节第一位为1(ASCII第一位为0(正数)),即汉字的ASCII为负数,所以统计完负数后取一半输出即输出为s/2。计算机中,补码第一位是符号位1表示为负数,所以汉字机内码的每个字节表示的十进制数都是负数,且汉字占用两个字节结果要除以2。
    AC代码:
     1 #include <bits/stdc++.h>
     2 using namespace std;
     3 int main()
     4 {
     5     int n,s;
     6     char c;
     7     cin>>n;
     8     getchar();//吃掉回车符的影响
     9     while(n--){  //n个实例
    10         s=0;  //统计ASCII为负数的汉字
    11         while((c=getchar())!='
    '){  //读入一整行
    12             if(c<0)s++;
    13         }
    14         cout<<s/2<<endl;  //占两个字节,将结果除以2
    15     }
    16     return 0;
    17 }
  • 相关阅读:
    故乡
    webService和Restful
    java多线程(六)线程控制类
    java内存模型
    java多线程(五)线程通讯
    java多线程(四)死锁
    java多线程(三)线程的安全问题
    java多线程(二)线程的生命周期
    java多线程(一)创建线程的四种方式
    Spring Cloud(一)简单的微服务集成Eureka
  • 原文地址:https://www.cnblogs.com/acgoto/p/8732341.html
Copyright © 2011-2022 走看看