pascal中输入n个一位数再输入s,用n个数组成n位数(数不可重复),从大到小排列后,输出第s个数
来源:学生作业帮 编辑:大师作文网作业帮 分类:综合作业 时间:2024/11/11 11:56:55
pascal中输入n个一位数再输入s,用n个数组成n位数(数不可重复),从大到小排列后,输出第s个数
先输入n,再输入n个数
可能会组成100位数
先输入n,再输入n个数
可能会组成100位数
你没说数据范围.如果s比较小的话,用这个程序就行了:
program example;
var
x,i,n,s:byte;
a:array[1..256]of byte;
s:array[0..9]of byte;
procedure print;
begin
for i:=1 to n do write(a[i]);
halt;
end;
procedure search(x:byte);
var i:byte;
begin
if x>n then begin
if s=1 then begin print else begin dec(s);exit;end;
for i:=0 to 9 do
if s[i]>0 then
begin
a[x]:=i;
dec(f[i]);
search(x+1);
inc(f[i]);
end;
end;
begin
fillchar(s,10,0);readln(n,s);
for i:=1 to n do begin
read(x);
inc(s[x]);
end;
searc(1);
end.
再问: 是search(1) 可能会超过10000000000000000000000000000000000000000000000000000000000000000
program example;
var
x,i,n,s:byte;
a:array[1..256]of byte;
s:array[0..9]of byte;
procedure print;
begin
for i:=1 to n do write(a[i]);
halt;
end;
procedure search(x:byte);
var i:byte;
begin
if x>n then begin
if s=1 then begin print else begin dec(s);exit;end;
for i:=0 to 9 do
if s[i]>0 then
begin
a[x]:=i;
dec(f[i]);
search(x+1);
inc(f[i]);
end;
end;
begin
fillchar(s,10,0);readln(n,s);
for i:=1 to n do begin
read(x);
inc(s[x]);
end;
searc(1);
end.
再问: 是search(1) 可能会超过10000000000000000000000000000000000000000000000000000000000000000
pascal中输入n个一位数再输入s,用n个数组成n位数(数不可重复),从大到小排列后,输出第s个数
C语言,输入n个四位数,如果各个位数都是偶数则输出符合条件的数的个数,并在另一个数组中按从大到小排列
输入一个正整数n,再输入n个整数,将最小值与第一个数交换,最大值与最后一个数交换,再输出交换后的n个数
pascal语言:输入n个数,并输出最大的数和最小的数
C语言,输入一个(1~20)的数n!得到n*n个数,以n*n矩阵顺时针输出!
输入n个整数,请找出最小数所在的位置,并把它与第一个数对调.(pascal 数组)
输入实数个数:n,并输入n个实数.输出:平均值、最大值、最小值.
C语言,输入一个整数n,然后输入n个数,计算并输出n个数中奇数之和
pascal,从n个数中选择m个数,输出每一种组合,并统计总的个数
输入一个正整数n(1<n≤10),再输入n个正整数,找出其中的素数,并将它们从大到小排序后输出
用pascal 输入N个数,计算偶数、奇数和零的个数
pascal编程 输入n个整数,找出最大数所在的位置,并将它与第一个数对调