竞赛
考级
考虑推式子: 令 a=∑i=1n2ib=2a=∑i=2n+12ia=\sum_{i=1}^n2^i \\ b=2a=\sum_{i=2}^{n+1}2^i a=i=1∑n 2ib=2a=i=2∑n+1 2i b−ab-ab−a 得: 2a−a=(∑i=2n+12i)−(∑i=1n2i)a=2n+1−22a-a=(\sum_{i=2}^{n+1}2^i)-(\sum_{i=1}^n2^i)\\ a=2^{n+1}-2 2a−a=(i=2∑n+1 2i)−(i=1∑n 2i)a=2n+1−2 ∴∑i=1n2i=2n+1−2\therefore\sum_{i=1}^n2^i=2^{n+1}-2∴∑i=1n 2i=2n+1−2 2n+12^{n+1}2n+1 即为 1<<(n+1),我们实现了 O(1)O(1)O(1) 解题。 码简,不贴无码。
暑 假 神(开学祭
N - 2幂 题目分析 求 21+22+23......+2N2^1 + 2^2 + 2^3 ...... + 2^N21+22+23......+2N。 AC代码
AC君
题目传送门 题意: 给定一个N,求21+22+23+……+2N。 AC代码: O(n) 通过推导算式,我们可以得到更优解(推导过程见别人的题解吧awa) O(1)
C+Mouger+xhx
我又来给聪聪复习初一上学期数学知识了( 任务:求∑i=nmai\sum\limits_{i=n}^{m}a^ii=n∑m ai. 即求an+an+1+an+2+…+am−1+ama^n+a^{n+1}+a^{n+2}+…+a^{m-1}+a^man+an+1+an+2+…+am−1+am. 之前聪聪想了一整个晚上都没想出来(逊 下面是解法: 令S=an+an+1+an+2+…+am−1+amS=a^n+a^{n+1}+a^{n+2}+…+a^{m-1}+a^mS=an+an+1+an+2+…+am−1+am. 则a×S = an+1+an+2+…+am−1+am+am+1a\times S\text{ }=\text{ }a^{n+1}+a^{n+2}+…+a^{m-1}+a^m+a^{m+1}a×S = an+1+an+2+…+am−1+am+am+1. 将二式减一式,得 (a−1)S=am+1−an(a-1)S=a^{m+1}-a^n(a−1)S=am+1−an. 则S=am+1−ana−1S=\dfrac{a^{m+1}-a^n}{a-1}S=a−1am+1−an . ∴∑i=nmai=am+1−ana−1∴\sum\limits_{i=n}^{m}a^i=\dfrac{a^{m+1}-a^n}{a-1}∴i=n∑m ai=a−1am+1−an . ok复习完了,再看看这道题,将n=1,m=N,a=2n=1,m=N,a=2n=1,m=N,a=2代入,得m方减m, ∑i=1N2i=2N+1−2\sum\limits_{i=1}^{N}2^i=2^{N+1}-2i=1∑N 2i=2N+1−2. 又因为2的n次幂可以用1<<n表示,还更快,所以答案如下: 秒了!
队团加不)ด้้童帅_者仇复
> 首先,该题解适用于3岁以下的同学们食用... > 即使看不懂也没关系,(5,62) (10,2046) 两个正整数数对让人想到跟2的正整数次幂有关系, > So,please开始找规律,公式ans=pow(2,n+1)-2,请各位认真消化! > 以下是最短代码:
鍾離しょうり
#include<bits/stdc++.h> using namespace std; int sum_()//定义一个方法叫sum_()。 { int n,sum,i=1,sum1=1;//定义变量。 cin>>n; for(;i<=n;i++) //循环n次。 { for(int d=1;d<=i;d++)//循环i次。 { sum1*=2;//计算2的i次方。 } sum+=sum1;//累加2的i次方。 sum1=1;//重置sum。 } return sum;//返回sum。 } int main() { int n=sum_();//定义变量n=方法sum_()的返回值sum。 cout<<n;//输出n; return 0; }
鬼影之魂
#include <iostream> using namespace std; int main(){ int n; cin >> n; cout << (1<<(n+1))-2; return 0; }
你
这里使用左移运算符求幂,看不太懂的兄弟可以补一下知识点 ···#include<iostream> using namespace std; int main() { auto N{0}; cin>>N; cout<<(2<<N)-2; }
北北
2,6,14,30,62,126,254,510,1022,2046
LOVEKlee1314
说实话,这题并不难,只需要把样例带入,带入后我们发现输出的数==pow(2,n+1)-2 简单易懂。 #include <iostream> #include <cmath> using namespace std; int main(){ int n; cin>>n; n++; cout<<pow(2,n)-2; return 0; }
不想打代码的餮蒲