8 条题解

  • 1
    @ 2024-1-26 18:52:20

    快速幂(

    #include<bits/stdc++.h>
    using namespace std;
    #define ll long long
    
    int kuaisumi_2(int x,int y){
        int ans=1;
        while (y){
            if (y&1){
                ans*=x;
            }
            x=x*x;
            y>>=1;
        }
        return ans;
    }
    int main()
    {
        int n;
        cin>>n;
        cout<<kuaisumi_2(2,n);
        return 0;
    }
    • 1
      @ 2024-1-20 15:22:53

      Python(最简代码)

      a=int(input())
      print(2**a)
      
      • 1
        @ 2023-7-14 19:31:18

        突然就想到了这种解法😄

        #include<iostream>
        using namespace std;
        int main()
        {
            int q;
            cin>>q;
            cout<<(2<<(q-1));
            return 0;
        }
        
        • 1
          @ 2023-7-2 21:52:05

          用for语句实现多次乘2 如2³=循环3次2=22*2

          #include<iostream>
          using namespace std;
          int main()
          {
              int q,sum=1;
              cin>>q;
              for (int i=1;i<=q;i++) sum*=2;
              cout<<sum;
              return 0;
          }
          
          • 1
            @ 2023-5-21 16:16:41

            说明:

            主要考查把数学问题转换为编程问题。

            2n的值,即2的n次方,是n个2相乘的结果。

            例如2²是2的2次方,也称2的平方,即2×2。

            再如2³是2的3次方,也称2的立方,即2×2×2。

            n的值是通过输入获取的、不确定的,所以不能直接相乘。对于没有学过更深的知识点(例如循环),可以使用pow函数(前面的题解有具体介绍过)。

            pow函数原型:

            double pow(double x, double y);

            pow函数的使用方法:

            包含数据库头文件:

            C语言用法:<math.h>

            C++用法:

            其中x是底数,y是指数。例如本题应该这么用:pow(2, n),它返回的也是double类型,即它的结果。

            例如pow(2, 3)的结果为8。

            关于其他的解法,在后续的文章中会详细讲解到。

            思路分析:

            数据类型可以选择int类型,本题n的值小于31,2的31次方刚好在int类型的范围内。当然也可以选择unsigned、long等类型。

            而pow函数返回的结果是double类型,所以应转换为整型。

            求解过程: 声明1个整型类型变量n。

            输入一个整数给变量n。

            输出2的n次方。

            因为太简单了,就放下核心代码:

            cout << int(pow(2,n));
            

            啥意思呢,就是把pow的结果转为int类型

            最后就写个int,然后把核心代码一放就OK了

            • @ 2023-5-21 16:17:52

              要看完实在不会,你就看下我下面的C语言代码,看看有没有启发

              #include <stdio.h>
              #include <math.h>
              int main()
              {
                  int n;
                  scanf("%d", &n);
                  printf("%d", (int)pow(2, n));    // 把pow的结果转为int类型
                  return 0;
              }
              

              这个用的也是pow函数

          • 0
            @ 2024-5-19 16:33:42

            很简单

            #include <bits/stdc++.h>
            using namespace std;
            int n;
            int main(){
            cin >> n;
            cout << int(pow(2,n));   //转换类型
            return 0;
            }
            
            • 0
              @ 2024-4-6 19:30:35
              这道题很简单,用pow(2,n)的形式就能表示出2的n次幂
              

              #include <iostream> #include <cmath> using namespace std; int main() { int n; cin >> n; cout << int(pow(2,n));//强制类型转换 return 0; }

              但要注意,题目中说pow的返回值为float或double类型,所以输出最后答案要用强制类型转换int()

              • 0
                @ 2023-5-20 18:14:42

                解析:

                补充一个函数:pow(参数1,参数2),原型是double pow(double x,double y);

                使用的头文件是#include<math.h>

                参数1是底,参数2是指数。比如3的5次方,那么参数1就是3,参数2就是5,可以写作pow(3,5),表示的是3×3×3×3×3。当数据范围很小的时候,他的计算结果是整数,但是数据类型其实是double类型

                在这题中,注意数据范围可能很大,所以可以把结果定义为long long类型。

                当然对于pow的参数还有更多的展开,大家可以自行搜索

                核心代码

                long long x=pow(2,n);
                cout<<x;
                
                • 1

                信息

                ID
                104
                时间
                1000ms
                内存
                128MiB
                难度
                4
                标签
                递交数
                326
                已通过
                158
                上传者