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

hdu 2048 神、上帝以及老天爺

編輯:C++入門知識

這個題讓輸出整得好慘。本題的思路是看第n個人的情況,若第n個人拿了他前面(n-1)個人的東西,而這個人正好拿了第n個人的東西,則這個事件發生必然為f(n-2),另一種情況兩人的物品並沒有互換,則剩下的人再繼續進行這件事,f(n-1)。發生的總的可能性就是(n-1)*(f(n-1)+f(n-2)).注意要輸出%要連著兩個%才行。

[cpp]
<SPAN style="FONT-SIZE: 18px">#include<iostream> 
#include<stdio.h>  
using namespace std; 
_int64 a[21][2]; 
int main() 

    int i,C,n; 
    a[2][1]=1; 
    a[2][0]=2; 
    a[3][1]=2; 
    a[3][0]=6; 
    for(i=4;i<=20;i++) 
    { 
        a[i][1]=(i-1)*(a[i-1][1]+a[i-2][1]); 
        a[i][0]=a[i-1][0]*i; 
    } 
    cin>>C; 
    while(C!=0) 
    { 
        cin>>n; 
        printf("%.2f%%\n",a[n][1]*100.0/a[n][0]); 
        C=C-1; 
    } 
    return 0; 

</SPAN> 

#include<iostream>
#include<stdio.h>
using namespace std;
_int64 a[21][2];
int main()
{
 int i,C,n;
 a[2][1]=1;
 a[2][0]=2;
 a[3][1]=2;
 a[3][0]=6;
 for(i=4;i<=20;i++)
 {
  a[i][1]=(i-1)*(a[i-1][1]+a[i-2][1]);
  a[i][0]=a[i-1][0]*i;
 }
 cin>>C;
 while(C!=0)
 {
  cin>>n;
  printf("%.2f%%\n",a[n][1]*100.0/a[n][0]);
  C=C-1;
 }
 return 0;
}

 


 

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