当前位置: 代码迷 >> 综合 >> 添加好友
  详细解决方案

添加好友

热度:29   发布时间:2023-10-30 00:40:32.0
(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;}
}

 
  相关解决方案