Bootstrap

团体程序设计天梯赛-练习集——L1-012 计算指数

前言

这道题简单至极,几行代码就全都解决了。这次多来几个写法;

L1-012 计算指数

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

输入格式:

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

输出格式:

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

输入样例:

5

输出样例:

2^5 = 32

好了,以上就是全部的题目,现在我们来看看解法,题目比较简单,直接上代码了

代码1

这个解法是用了一个for循环,这样直接看是n的几次方,循环乘2几次就好了

#include <stdio.h>

int main()
{
    int n,s = 1,i;//n是次方值,s是计算出的值,i是循环次数
    scanf("%d",&n);
    for(i = 0; i < n;i++)
    {
        s *=2; //循环乘2计算结果
    }
    printf("2^%d = %d",n,s);//输出结果
}

代码2

这是一个屎山写法,写的比较长,运算的部分自己做完了就,直接输出结果通过一个switch语句,分别输出2的0到10次方的值,因为这个计算量比较小,可以用switch,如果是上百个的话,那就不要用了

#include <stdio.h>

int main()
{
    int n;
    scanf("%d",&n);
    switch(n)//通过switch判断输入的值,直接输出
    {
        case 0:printf("2^0 = 1");break;
        case 1:printf("2^1 = 2");break;
        case 2:printf("2^2 = 4");break;
        case 3:printf("2^3 = 8");break;
        case 4:printf("2^4 = 16");break;
        case 5:printf("2^5 = 32");break;
        case 6:printf("2^6 = 64");break;
        case 7:printf("2^7 = 128");break;
        case 8:printf("2^8 = 256");break;
        case 9:printf("2^9 = 512");break;
        case 10:printf("2^10 = 1024");break;
    }
}

代码3

这应该是代码量最少的一种写法,通过一个pow函数,这个函数是计算次方的函数,里面的第一个变量是计算的底数,第二个变量是幂,这样直接调用函数就好了,其实感觉这个函数和第一种方式大差不差,有种脱裤子放屁的感觉

#include <stdio.h>
#include <math.h>

int main()
{
    int n,s;
    scanf("%d",&n);
    s = pow(2,n);//调用pow函数,计算结果
    printf("2^%d = %d",n,s);
}

以上所有代码均为自己编写,本人水平有限,如果有哪里出错或者有更好的解法可以与我私信或在评论区里进行讨论

上一题:团体程序设计天梯赛-练习集——L1-011 A-B

下一题:团体程序设计天梯赛-练习集——L1-013 计算阶乘和

;