会C语言的请进!急!

[复制链接]
查看11 | 回复1 | 2008-11-23 11:58:31 | 显示全部楼层 |阅读模式
这题怎么做?
Description:
Inspired by a "Little Bishops" problem, Petya now wants to solve problem for rooks.
A rook is a piece used in the game of chess which is played on a board of square grids. A rook can only move horizontally and vertically from its current position and two rooks attack each other if one is on the path of the other.
Given two numbers n and k, your job is to determine the number of ways one can put k rooks on an n × n chessboard so that no two of them are in attacking positions.
Input:
The input contains several test cases. Each case contains two integers n (1 ≤ n ≤ 12) and k (0 ≤ k ≤ n2)。
Output :
The input is terminated with n=0 and k=0.
For each case, print a line containing the total number of ways one can put the given number of rooks on a chessboard of the given size so that no two of them are in attacking positions.
Sample Input:
4 4
0 0
Sample Output:
24
要用C语言

回复

使用道具 举报

千问 | 2008-11-23 11:58:31 | 显示全部楼层
我不知道我的理解有没有错。英文的看起来比较郁闷,如果错误的话,你就用中文讲一下大概意思。不然没法帮你 #includelong P(long n,long m) { long p=1; while(m!=0) {p*=n;n--;m--;} return p; } long C(long n,long m) { long i,c=1; i=m; while(i!=0) {c*=n;n--;i--;} while(m!=0) {c/=m;m--;} return c; } main() { int n,k; while(scanf("...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行