程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> uva 11609,ql11609qfry

uva 11609,ql11609qfry

編輯:C++入門知識

uva 11609,ql11609qfry


---恢復內容開始---

題意:

  給出n代表有n組測試數據,每組數據給出總人數,取任意人數組成小隊,小隊的任意成員都可以成為隊長。問能組成幾種不同的小隊。注:當小隊隊員相同但隊長不同時,算新的小隊。

Sample Input

3

1

2

3

Sample Output

Case #1: 1

Case #2: 4

Case #3: 12

分析:

  很簡單的數學問題,用c(i,n)代表從n個人中取i個組成小隊的取費,之後再乘i。這樣就算出i個人能在組成小隊的個數。

代碼:

  

#include<iostream>
using namespace std;
long long cf(long long i,long long n)
{
    long long ans = 1;
    while(n)
    {
        if(n&1)
        {
            ans=ans*i%1000000007;
        }
        i=i*i%1000000007;
        n>>=1;
    }
    return ans;

}
int main()
{
    int n;
    int i;
    cin>>n;
    for(i=1;i<=n;i++)
    {
        int x;
        cin>>x;
        long long y=cf(2,x-1)*x%1000000007;
        cout<<"Case #"<<i<<": "<<y<<endl;
    }
}

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved