主题:不是DOG的请进!!!
6yangweihua
[专家分:180] 发布于 2005-09-07 19:47:00
输入N和M,N表示范围,M表示N中的几个数,输出所有情况。
例:输入 3,2;
输出 1,2
1,3
2,3
回复列表 (共12个回复)
沙发
QQ331373582 [专家分:1500] 发布于 2005-09-07 20:04:00
var t,m,n:longint;
procedure dg(x:integer;s:string);
var k:integer;
i:string;
begin
if x=n+1 then begin
t:=t+1;
writeln(t,':',s);
end else begin
for k:=1 to m do begin
str(k,i);
if(pos(i,s)=0)then begin
dg(x+1,s+i)
end;
end;
end;
end;
begin
readln(m,n);
if(m<=9)and(m>0) then begin
dg(1,'');
end;
end.
3 楼
lzl1403 [专家分:1670] 发布于 2005-09-09 21:30:00
来个简单一点的:
readln(m,n);
for i:=1 to n do
a[i]:=i;
repeat
for i:=1 to n-1 do
write(a[i],' ');
writeln(a[n]);
j:=n;
while a[j]=m-n+j do dec(j);
a[j]:=a[j]+1;
for i:=j+1 to n do
a[i]:=a[i-1]+1;
until a[1]=m-n+1;
for i:=1 to n-1 do
write(a[i],' ');
writeln(a[n]);
4 楼
lzl1403 [专家分:1670] 发布于 2005-09-09 21:31:00
记得加分啊!
5 楼
阿Ben [专家分:2200] 发布于 2005-09-09 22:18:00
这是排列数还是组合数?
6 楼
6yangweihua [专家分:180] 发布于 2005-09-10 15:11:00
排列啊,5楼那位,谢谢
7 楼
lzl1403 [专家分:1670] 发布于 2005-09-10 22:04:00
5楼的,我的程序就是穷举排列数了
8 楼
kgy007 [专家分:0] 发布于 2005-09-28 14:01:00
找抽帖!
鉴定完毕!
9 楼
口口and枕头 [专家分:1550] 发布于 2005-10-01 16:16:00
好恶劣的主题呀~
10 楼
smoon [专家分:30] 发布于 2005-10-02 07:39:00
三楼的也够简单,数组都没定义.
我来回复