(A+B)ˇn=C(n,0)Aˇ0Bˇn+C(n,1)A^1B^n-1……+C(n,n)A^nB^0
描述
Tony最近喜欢上了龙之谷游戏,所以他想叫上他的好友组建一个公会来一起享受这款游戏。
Tony一共有n个好友,他可以叫上任意k(1<=k<=n)个好友来组建公会,并且所有好友都会答应他的请求。问Tony一共可以有多少种方案组建这个公会?
只要不是完全相同的人组建的方案视为不同方案,并且Tony至少要叫上一个人。
输入
多组输入,每组一行,输入一个正整数n(1<=n<=1000000000)。
输出
每组输出一行,输出方案数。(对1000000007取膜)
样例输入1
2
样例输出1
3
import java.util.*;
public class Main {
static long z=1000000007;
public static void main(String args[]){
Scanner reader=new Scanner(System.in);
while(reader.hasNext()){
long a=reader.nextLong();
System.out.println(pow(a));
}
}
public static long pow(long a){
long num=1;
long t=1;
if(a==1){
return 1;
}
else{
String s=Long.toBinaryString(a);
if(s.charAt(s.length()-1)=='1'){
num*=2;
}
t=2;
for(int n=s.length()-2;n>=0;n--){
t=t*t%z;
if(s.charAt(n)=='1'){
num=num*t%z;
}
}
}
num--;
return num;
}
}