zoukankan      html  css  js  c++  java
  • 『ACM C++』 PTA 天梯赛练习集L1 | 012-015

      女神节快乐鸭,大学的女生节真的是忙碌呢,到处送礼物,真的是当时男生节的出来混的,总该是要还的hhhhh

    ------------------------------------------------L1-012----------------------------------------------------------

    计算指数

    真的没骗你,这道才是简单题 —— 对任意给定的不超过 10 的正整数 n,要求你输出 2n​​。不难吧?

    输入格式:

    输入在一行中给出一个不超过 10 的正整数 n。

    输出格式:

    在一行中按照格式 2^n = 计算结果 输出 2n​​ 的值。

    输入样例:

     5

    输出样例:

    2^5 = 32

    ------------------------------------------------L1-012----------------------------------------------------------

     注解:水题,一句话AC

    #include<stdio.h>
    #include<math.h>
    
    int times;
    int main()
    {
        scanf("%d",&times);
        printf("2^%d = %d
    ",times,(int)pow(2.0,times));
        return 0;
     } 

    ------------------------------------------------L1-013----------------------------------------------------------

    计算阶乘和

    对于给定的正整数N,需要你计算 S=1!+2!+3!+...+N!。

    输入格式:

    输入在一行中给出一个不超过10的正整数N。

    输出格式:

    在一行中输出S的值。

    输入样例:

     3

    输出样例:

     9

    ------------------------------------------------L1-013----------------------------------------------------------

    注解:这道题有两种写法,第一种就是用递归的方法,第二种就是直接两层循环for,方法都写出来了如下:按需所取。

    递归法:

    #include<stdio.h>
    long long int sum,temp;
    void rec(int times)
    {
        if(times == 0) return;
        temp = 1;
        for(int i = times;i>0;i--)
            temp*=i;
        sum+=temp;
        rec(times-1);
    }
    int main()
    {
        int N;
        scanf("%d",&N);
        rec(N);
        printf("%d",sum);
        return 0;
    }

    循环法:

    #include<stdio.h>
    long long int temp,sum;
    int main()
    {
        int N;
        scanf("%d",&N);
        for(int i = N;i>0;i--)
        {
            temp = 1;
            for(int j = i;j>0;j--)    temp*=j;
            sum+=temp;
        }
        printf("%d",sum);
        return 0;
    }

    ------------------------------------------------L1-014----------------------------------------------------------

    简单题

    这次真的没骗你 —— 这道超级简单的题目没有任何输入。

    你只需要在一行中输出事实:This is a simple problem. 就可以了。

    输入样例:

    输出样例:

    This is a simple problem.

    ------------------------------------------------L1-014----------------------------------------------------------

    注解:我不知道这道题出的意义在哪里??? 无聊吗。。。

    #include<stdio.h>
    int main()
    {
        printf("This is a simple problem.");
        return 0;
    }

    ------------------------------------------------L1-015----------------------------------------------------------

    跟奥巴马一起画方块

    美国总统奥巴马不仅呼吁所有人都学习编程,甚至以身作则编写代码,成为美国历史上首位编写计算机代码的总统。2014年底,为庆祝“计算机科学教育周”正式启动,奥巴马编写了很简单的计算机代码:在屏幕上画一个正方形。现在你也跟他一起画吧!

    输入格式:

    输入在一行中给出正方形边长N(3N21)和组成正方形边的某种字符C,间隔一个空格。

    输出格式:

    输出由给定字符C画出的正方形。但是注意到行间距比列间距大,所以为了让结果看上去更像正方形,我们输出的行数实际上是列数的50%(四舍五入取整)。

    输入样例:

    10 a

    输出样例:

    aaaaaaaaaa
    aaaaaaaaaa
    aaaaaaaaaa
    aaaaaaaaaa
    aaaaaaaaaa

    ------------------------------------------------L1-015----------------------------------------------------------

    注解:这题有点小知识点,那就是如何做到四舍五入,因为一般/除法只能取整,所以这里很容易WA,下面贴上AC代码:

    #include<stdio.h>
    
    int main()
    {
        int N;
        char T;
        scanf("%d %c",&N,&T);
        for(int i = (N+(2/2))/2;i>0;i--)
        {
            for(int j = N;j>0;j--)    printf("%c",T);
            printf("
    ");
        }
        return 0;
        
    }

    知识点:若想实现四舍五入或进一法,只需:

    ans:结果  a:被除数 b:除数:

    1(四舍五入) :  ans=(a+(b/2))/b

    2(进一法) :   ans=(a+(b-1))/b

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

  • 相关阅读:
    Native RabbitMQ Direct Exchange
    RabbitMQ系列文章导读
    AbstractQueuedSynchronizer
    CountDownLatch和CyclicBarrier
    显示锁Lock
    《SeleniumBasic 3.141.0.0
    《SeleniumBasic 3.141.0.0
    《SeleniumBasic 3.141.0.0
    《SeleniumBasic 3.141.0.0
    《SeleniumBasic 3.141.0.0
  • 原文地址:https://www.cnblogs.com/winniy/p/10493400.html
Copyright © 2011-2022 走看看