• 『ACM C++』 PTA 天梯赛练习集L1 | 046-47


    今日刷题

    ------------------------------------------------L1-046----------------------------------------------------------

    L1-046 整除光棍

    这里所谓的“光棍”,并不是指单身汪啦~ 说的是全部由1组成的数字,比如1、11、111、1111等。传说任何一个光棍都能被一个不以5结尾的奇数整除。比如,111111就可以被13整除。 现在,你的程序要读入一个整数x,这个整数一定是奇数并且不以5结尾。然后,经过计算,输出两个数字:第一个数字s,表示x乘以s是一个光棍,第二个数字n是这个光棍的位数。这样的解当然不是唯一的,题目要求你输出最小的解。

    提示:一个显然的办法是逐渐增加光棍的位数,直到可以整除x为止。但难点在于,s可能是个非常大的数 —— 比如,程序输入31,那么就输出3584229390681和15,因为31乘以3584229390681的结果是111111111111111,一共15个1。

    输入格式:

    输入在一行中给出一个不以5结尾的正奇数x<)。

    输出格式:

    在一行中输出相应的最小的sn,其间以1个空格分隔。

    输入样例:

    31

    输出样例:

    3584229390681 15

    ------------------------------------------------L1-046----------------------------------------------------------

    注解:水题

    #include<stdio.h>
    int X,temp,mark,count;
    int main()
    {
        scanf("%d",&X);
        while(1)
        {
            temp = temp*10 + 1;
            if(temp>=X)
            {
                printf("%d",temp/X);
                mark = 1;
            }
            else if(mark == 1) printf("0");
            count++;
            temp = temp%X;
            if(temp == 0) break;
        }
        printf(" %d
    ",count);
        return 0;
    }

    ------------------------------------------------L1-047----------------------------------------------------------

    你永远叫不醒一个装睡的人

    但是通过分析一个人的呼吸频率和脉搏,你可以发现谁在装睡!医生告诉我们,正常人睡眠时的呼吸频率是每分钟15-20次,脉搏是每分钟50-70次。下面给定一系列人的呼吸频率与脉搏,请你找出他们中间有可能在装睡的人,即至少一项指标不在正常范围内的人。

    输入格式:

    输入在第一行给出一个正整数N(≤)。随后N行,每行给出一个人的名字(仅由英文字母组成的、长度不超过3个字符的串)、其呼吸频率和脉搏(均为不超过100的正整数)。

    输出格式:

    按照输入顺序检查每个人,如果其至少一项指标不在正常范围内,则输出其名字,每个名字占一行。

    输入样例:

    4
    Amy 15 70
    Tom 14 60
    Joe 18 50
    Zoe 21 71

    输出样例:

    Tom
    Zoe

    ------------------------------------------------L1-047----------------------------------------------------------

    注解:水题,特判一下就好了

    #include<stdio.h>
    int times;
    int main()
    {
        scanf("%d",&times);
        while(times--)
        {
            char name[4];
            int breath,jump,mark = 0;
            scanf(" %s %d %d",&name,&breath,&jump);
            if(breath< 15 || breath > 20) mark = 1;
            if(jump < 50 || jump > 70) mark = 1;
            if(mark) puts(name);
        }
        return 0;
    }

    注:如果有更好的解法,真心希望您能够评论留言贴上您的代码呢~互相帮助互相鼓励才能成长鸭~~

  • 相关阅读:
    Python之‘’控制流‘’
    Python之运算符以及基本数据类型的object
    Python第一次写的代码
    Oracle角色管理
    Oracle的控制文件和日志文件
    Oracle的权限管理
    Oracle内置函数
    Oracle视图的使用
    Oracle事务和锁
    Oracle的用户管理
  • 原文地址:https://www.cnblogs.com/winniy/p/10575535.html
Copyright © 2020-2023  润新知