HDU 2030汉字统计

来源:互联网 发布:山东恒邦网络 编辑:程序博客网 时间:2024/06/14 19:59

机内码:为了避免ASCII码和国标码同时使用时产生二义性问题,大部分汉字系统都采用将国标码每个字节高位置1作为汉字机内码。

也就是说,一个汉字字符由两个字节组成,而且这两个字节的最高位一定是1.

那么输入的时候只getchar(),这样只能一半一半的输入,也就是一个汉字分两次输入。

而每次输入的值的首位一定是1,也就是一定是负的。(都知道补码首位1表示负数吧……)

而其他字符的ASCII码是正的。

#include <iostream>#include <cstdio>#include <cstring>#include <set>#include <queue>#include <algorithm>#include <functional>#include <string>#include <map>#include <cmath>#include <iomanip>using namespace std;const int maxn=1000;const int inf=0x3f3f3f3f;int main(){   int n;   scanf("%d",&n);   getchar();   while(n--)   {       char c;       int cnt=0;       while((c=getchar())!='\n')       {           if(c<0) cnt++;       }       printf("%d\n",cnt/2);   }}

原创粉丝点击