當前位置:編程學習大全網 - 編程軟體 - ACM 算法超難題目

ACM 算法超難題目

出題人的表達能力太差,題目敘述得很糟糕,最後兩個例子也錯了

比較好的敘述是,輸入n,輸出從0到32中取6項按字典序排序下的第n個組合(從第0個組合0,1,2,3,4,5開始計)

這種談不上什麽難題,只不過是入門級的問題

在給定前k項的(記第k項為m)情況下余下的項***有C(32-m,6-k)種情況,這裏C(x,y)表示x取y的組合數,以此編程即可

給妳壹個例子

#include?<stdio.h>

int?binom(int?n,?int?m)

{

int?i,?c?=?1;

if?(2*m?>?n)

n?=?n-m;

for?(i?=?1;?i?<=?m;?i++)

c?=?c*(n+1-i)/i;

return?c;

}

int?main()

{

int?i,?n;

int?A[6]?=?{-1};

while?(scanf("%d",?&n)?!=?EOF)

{

n++;

if?(n?<=?0?||?n?>?binom(33,?6))

{

printf("Invalid?input\n");

continue;

}

for?(i?=?1;?i?<=?5;?i++)

{

for?(A[i]?=?A[i-1]?+?1;?;?A[i]++)

{

int?t?=?binom(32?-?A[i],?6?-?i);

if?(n?>?t)

n?-=?t;

else

break;

}

printf("%d,",?A[i]);

}

printf("%d\n",?A[i-1]?+?n);

}

return?0;

}

  • 上一篇:熟悉Access編程的請進來
  • 下一篇:關於核桃編程舉報上哪
  • copyright 2024編程學習大全網