您的位置:首页 > 其它

HDU 2030 汉字统计

2017-05-16 22:40 323 查看
汉字统计

Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)

Total Submission(s): 45354 Accepted Submission(s): 24739

Problem Description

统计给定文本文件中汉字的个数。

Input

输入文件首先包含一个整数n,表示测试实例的个数,然后是n段文本。

Output

对于每一段文本,输出其中的汉字的个数,每个测试实例的输出占一行。

[Hint:]从汉字机内码的特点考虑~

Sample Input

2

WaHaHa! WaHaHa! 今年过节不说话要说只说普通话WaHaHa! WaHaHa!

马上就要期末考试了Are you ready?

Sample Output

14

9

还是题水,但是需要知道一点小知识;

汉字的ASCII是负数,而且一个字符是一个字节,但是汉字内码的特点是两个字节组成


所以,知道了之后了,很轻松。

#include "cstdio"
#include "algorithm"
#include "cmath"
#include "cstring"

using namespace std;
int GCD(int a,int b)
{
return b==0?a:GCD(b,a%b);
}
int LCM(int a,int b)
{
return a/GCD(a,b)*b;
}
int main()
{
int i, j, k, l, m, n, t, i1;
char a[1000];
scanf("%d",&n);
getchar();
while(n--)
{
fgets(a,sizeof(a),stdin);
int sum=0;
int len=strlen(a);
for(i=0;i<len;i++)
{
if(a[i]<0)
sum++;
}
printf("%d\n",sum/2);
}
return 0;
}


有的博主说,不知道大小最好这样子写。我也觉得蛮好的。如下

while((e=getchar())!='\n')
{
if(e<0)
sum++;
}


就酱紫。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: