• 假期编程


    此博客链接:https://www.cnblogs.com/ping2yingshi/p/12299313.html

    1.汉字统计(15min)

    题目链接: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
    题解:
            方法:汉字占两个字节,肯定不在ASCII内。
            思路:定义一个字符数组接收输入的字符,对每个字符进行判断,如果字符不在0~255之间即为汉字。
    代码如下:
    #include<stdio.h>
    #include<math.h>
    #include<stdlib.h>
    #include<string.h>
    int main(void)
    {
           int str;
           int n;
           scanf("%d",&n);
           getchar();
           while(n>0)
           { 
            int count=0;
            int i;
            char c[1000];
            gets(c);
            str=strlen(c);
            for(i=0;i<str;i++)
            {
                if(c[i]<0||c[i]>255)
                    count++;
            }
            printf("%d\n",count/2); 
            n--;        
            }
      
        return 0;
        
    }

     2.密码(27min)

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

    Problem Description

    网上流传一句话:"常在网上飘啊,哪能不挨刀啊~"。其实要想能安安心心地上网其实也不难,学点安全知识就可以。

    首先,我们就要设置一个安全的密码。那什么样的密码才叫安全的呢?一般来说一个比较安全的密码至少应该满足下面两个条件:

    (1).密码长度大于等于8,且不要超过16。
    (2).密码中的字符应该来自下面“字符类别”中四组中的至少三组。

    这四个字符类别分别为:
    1.大写字母:A,B,C...Z;
    2.小写字母:a,b,c...z;
    3.数字:0,1,2...9;
    4.特殊符号:~,!,@,#,$,%,^;
    给你一个密码,你的任务就是判断它是不是一个安全的密码。
    Input
    输入数据第一行包含一个数M,接下有M行,每行一个密码(长度最大可能为50),密码仅包括上面的四类字符。
    Output
    对于每个测试实例,判断这个密码是不是一个安全的密码,是的话输出YES,否则输出NO。
    Sample Input
    3
    a1b2c3d4
    Linle@ACM
    ^~^@^@!%
    Sample Output
    NO
    YES
    NO
     题解:
             方法:1.密码长度大于16小于8的就不是安全密码。
                        2.密码长度对了,但是密码不是由题目给的四组类型中至少三种组成的不是安全密码。
             思路:
                     定义一个数组接收输入的字符,先判断密码长度是否符合要求,不符合要求就不是安全密码,定义四个count计算有多少种类型,最后把四种类型数求和,看是否大于等于3,是即是安全密码。
              注意:当那种类型数大于0时,最后求和之前把那种类型赋值为1,因为求和求的是有几种类型,不是每种类型种有多少个。
    代码如下:
    #include<stdio.h>
    #include<math.h>
    #include<stdlib.h>
    #include<string.h>
    int main(void)
    {
           
           int k;
           int str;
           int n;
           scanf("%d",&n);
           getchar();
           while(n>0)
           { 
            int flag=1;
            int count1=0;
            int count2=0;
            int count3=0;
            int count4=0;
            int sum=0;
            
            char c[100];
            gets(c);
            str=strlen(c);
            if(str>=8&&str<=16)
            {
                for(k=0;k<str;k++)
                {
                    if(c[k]>='a'&&c[k]<='z')
                    {
                        flag=1;
                        count1++;
                    }
                    else if(c[k]>='A'&&c[k]<='Z')
                    {
                        flag=1;
                        count2++;
                    }
                    else if(c[k]>='0'&&c[k]<='9')
                    {
                        flag=1;
                        count3++;
                    }
                    else if(c[k]=='~'||c[k]=='!'||c[k]=='@'||c[k]=='#'||c[k]=='$'||c[k]=='%'||c[k]=='^')
                    {
                        flag=1;
                        count4++;
                    }
                    else
                    {
                         flag=0;
                         break;
                    }
                       
                }
                
            }  
            else 
                flag=0; 
            if(count1!=0)
                count1=1;
            if(count2!=0)
                count2=1;
            if(count3!=0)
                count3=1;
            if(count4!=0)
                count4=1;
            sum=count1+count2+count3+count4;    
            if(flag==1)
            {
                if(sum>=3)
                    printf("YES\n");
                else
                    printf("NO\n") ;
            }
            
            if(flag==0) 
                printf("NO\n"); 
            n--;        
            }
      
        return 0;
        
    }
    出来混总是要还的
  • 相关阅读:
    js递归优化
    音视频混流
    JS的发布订阅模式
    redhat7.4 docker run启动容器报错container_linux.go:449
    使用Docker部署vue的前端应用过程
    Mac下安装pip
    powerDesigner 把name项添加到注释
    SQL SERVER 2012 连接报错
    CentOS minimal 安装图形界面
    SQLServer2008卸载后重装问题
  • 原文地址:https://www.cnblogs.com/ping2yingshi/p/12299313.html
Copyright © 2020-2023  润新知