如何用一段較為簡潔的程式實現下面這道智力題??
這個問題叫 錯排問題
http://
zh。wikipedia。org/wiki/%
E9%94%99%E6%8E%92%E9%97%AE%E9%A2%98
C語言大法好,一行就搞定了:
main
()
{
printf
(
“%d
\n
”
,
(
int
)(
5
*
4
*
3
*
2
*
1
/
2。718
+
0。5
));}
題主自己來回答一下。受 @白如冰的啟發,看了一下錯排問題,用遞迴解決。
import java。util。Scanner;
public class Cuopai
{
public static void main(String args[])
{
int num;
Scanner scanner=new Scanner(
http://
System。in
);
System。out。println(“請輸入共有幾對兒:”);
num=scanner。nextInt();
System。out。println(“共有”+zuhe(num)+“種組合”);
}
public static int zuhe(int num)
{
if (num==1)
return 0;
if (num==2)
return 1;
else
return (num-1)*(zuhe(num-1)+zuhe(num-2));
}
}
>>> 5 * 4 * 3 * 2 * 1 - 5 * 4 * 3 * 2 * 1 + 10 * 3 * 2 * 1 - 10 * 2 * 1 + 5 - 1
44
我也來沒節操惡搞一下 樓上那兩個j c語言的…
題主請別生氣
———————————————————
PHP大法好! 一行就搞定鳥!
echo無論你們說什麼,我就是比你們好! ?>//開始符被遮蔽了
———————————————————
just for smile