首页 > 代码库 > 杭电2030 汉字统计

杭电2030 汉字统计

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

  题目思路:

  1—— 一个汉字在字符串中是以两个负的字符形式存储,所以本题只要把字符串中负字符的个数找出来,再

除以2 就OK了。

  2——汉字机内码在计算机的表达方式的描述是,使用二个字节,每个字节最高位一位为1。 
计算机中, 补码第一位是符号位, 1 表示为 负数, 所以 汉字机内码的每个字节表示的十进制数都是负数。

代码:

#include <iostream>
#include<math.h>
#include <iomanip>
#include<cstdio>
#include<string>
#include<map>
#include<vector>
#include<list>
#include<algorithm>
#include<stdlib.h>
#include<iterator>
using namespace std;


int main()
{
    int n;
    cin>>n;
    cin.get();
    while(n--)
    {
      string input;
      getline(cin,input);
      int sum=0;
      int len=input.size();

      for(int i=0;i<len;i++)
      {
          if((input[i])<0)
          {
              sum++;
          }
      }
      cout<<sum/2<<endl;

    }


    return 0;
}

 

杭电2030 汉字统计