添加好友

发布时间: 2017年7月8日 21:10   最后更新: 2017年7月8日 22:32   时间限制: 1000ms   内存限制: 128M

<label class="problem&#45;label" style="display&#58;inline&#45;block&#59;font&#45;weight&#58;700&#59;font&#45;size&#58;16px&#59;">描述</label>

Tony最近喜欢上了龙之谷游戏,所以他想叫上他的好友组建一个公会来一起享受这款游戏。

Tony一共有n个好友,他可以叫上任意k1<=k<=n)个好友来组建公会,并且所有好友都会答应他的请求。问Tony一共可以有多少种方案组建这个公会?

只要不是完全相同的人组建的方案视为不同方案,并且Tony至少要叫上一个人。

<label class="problem&#45;label" style="display&#58;inline&#45;block&#59;font&#45;weight&#58;700&#59;font&#45;size&#58;16px&#59;">输入</label>

多组输入,每组一行,输入一个正整数n1<=n<=1000000000)。

<label class="problem&#45;label" style="display&#58;inline&#45;block&#59;font&#45;weight&#58;700&#59;font&#45;size&#58;16px&#59;">输出</label>

每组输出一行,输出方案数。(对1000000007取膜)

<label class="problem&#45;label" style="display&#58;inline&#45;block&#59;font&#45;weight&#58;700&#59;font&#45;size&#58;16px&#59;">样例输入1</label>  复制
2
<label class="problem&#45;label" style="display&#58;inline&#45;block&#59;font&#45;weight&#58;700&#59;font&#45;size&#58;16px&#59;">样例输出1</label>
3

#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
#include<cstdlib>
using namespace std;

long long quickmod(long long a,long long b,long long m)  
{  
    long long ans = 1;  
    while(b)
    {  
        if(b&1)
        {  
            ans = (ans*a)%m;
            b--;  
        }  
        b/=2;  
        a = a*a%m;  
    }  
    return ans;  
}  

int main(){
	int n;
	while(~scanf("%d",&n)){
		long long res = quickmod(2,n,1000000007);
		res--;
		cout<<res<<endl;
	}
	return 0;
}