中南大学计算机复试题目

2013年计算机复试题

1001 水仙花数

#pragma warning(disable:4996)

#include
#include
#include

 int main(){
     int a, b;
     while (scanf("%d%d", &a, &b) == 2) {
         int first = 1;
         int i;
         for ( i = a; i <= b; i++) {
             int m1, m2, m3;
             m1 = i % 10;
             m2 = i / 10 % 10;
             m3 = i / 100;
             if (i == m1 * m1 * m1 + m2 * m2 * m2 + m3 * m3 * m3) {
                 if (first == 1) {
                     printf("%d", i); 
                     first = 0;
                 }
                 else {
                     printf(" %d", i);
                 }
                 
             }
         }
         if (first == 0) {
             printf("\n");
         }
         if (first == 1) {
             printf("no\n");

         }
     
     }
     return 0;
}

1002:安全密码

网络上各类交易活动越来越普及,为了能够安安心心地上网,经常需要设置一个安全的密码。一般来说一个比较安全的密码至少应该满足下面两个条件:
(1)密码长度大于等于8。
(2)密码中的字符应该来自下面“字符类别”中四组中的至少三组。
这四个字符类别分别为:
(1)大写字母:A,B,C...Z;
(2)小写字母:a,b,c...z;
(3)数字:0,1,2...9;
(4)特殊符号:~,!,@,#,$,%,^;
给你一个密码,你的任务就是判断它是不是一个安全的密码。

#pragma warning(disable:4996)
#include
#include
#include
#define max  100
 int main(){
     char s[max];
     while (scanf("%s", s) !=EOF) {
         if (strlen(s) < 8) {
             printf("NO\n");
         }
         else {
             int count1=0, count2=0, count3=0, count4=0;

             for (int i = 0; i <= strlen(s) - 1; i++) {
                 if  ('0'<=s[i]&&s[i]<='9') {
                     count1 = 1;
                     //数字ASCII判断
                 }
                if  ('A' <= s[i]&&s[i] <= 'Z') {
                     count2 = 1;
                 }
                 if ('a' <= s[i]&&s[i] <= 'z') {
                     count3 = 1;
                     
                 }
                 if  ((s[i] == '~') ||( s[i] == '!' )||( s[i] == '@') ||( s[i] == '#' )||( s[i] == '$' )|| (s[i] == '%' )||( s[i] == '^')) {
                     count4 = 1;
                 }

             }
             int m = 0;
             m = count1 + count2 + count3 + count4;
             if (m >= 3) {
                 printf("YES\n");
             }
             else {
                 printf("NO\n");
             }
         }

     }

     return 0;
}

1003: 最少钱币数

作为A公司的职员,最盼望的日子就是每月的8号了,因为这一天是发工资的日子,养家糊口就靠它了。但是对于公司财务处的工作人员来说,这一天则是很忙碌的一天,财务处的小胡最近就在考虑一个问题:如果每个员工的工资额都知道,最少需要准备多少张人民币,才能在给每位职员发工资的时候都不用老师找零呢?这里假设员工的工资都是正整数,单位元,人民币一共有100元、50元、10元、5元、2元和1元六种。

#pragma warning(disable:4996)
#include
#include
#include
#define max  102
 int main(){
     int n;
     while (scanf("%d", &n) != EOF) {//老师个数
         int sum=0;//总数
         for (int i = 0; i < n; i++) {
             int total = 0;
             int num;//每个老师的钱数
             scanf("%d", &num);
             //人民币一共有100元、50元、10元、5元、2元和1元六种
             int num100, num50, num10, num5, num2, num1;
             num100 = num / 100;
             num50 = (num % 100) / 50;
             num10 = (num  % 50) / 10;
             num5 = (num % 10 )/ 5;
             num2 = (num % 5) / 2;
             num1 = (num%5)%2;//这里很容易出错,钱币1的数额不能安装上边的规律来,如2356,%2为0;但事实上6的组成是5+1,而不是3*2;
             //printf("%d 匹配结果为 :   100: %d, 50: %d, 10: %d, 5: %d, 2: %d, 1: %d...",num, num100, num50, num10, num5, num2, num1);
             total = num100 + num50 + num10 + num2 + num1+num5;
             sum = sum + total;
         }
         printf("%d\n", sum);
    }
     return 0;
}



你可能感兴趣的:(中南大学计算机复试题目)