Viết chương trình sắp xếp các chữ số của số n và in ra tất cả các số vừa sắp xếp. vd: n=918 Kết quả là: 981, 819, 891, 198, 189 Lưu ý: chỉ cần đủ các số của vd, không cần quan tâm tới thứ tự
2 câu trả lời
uses crt;
var s:string; n,m,j:longint; k:array[1..1000000]of longint;
function kt:boolean;
var i,j:longint;
begin
kt:=true;
for i:=1 to n do
for j:=1 to n do if (k[i]=k[j])and(i<>j) then kt:=false;
end;
function dequy(a:longint):longint;
var i,j:longint;
begin
for i:=1 to n do
begin
k[a]:=i;
if a<>n then dequy(a+1) else begin if kt then begin for j:=1 to n do write(s[k[j]]); writeln; end; dequy:=1; end;
end;
end;
begin
clrscr;
write('N=');readln(s);
n:=length(s);
writeln('Ket qua la: ');
dequy(1);
readln
end.
Đệ quy nhé!!!
//nếu như bạn muốn đủ các số của ví dụ (3 chữ số thì đây, còn nếu không phải thì nói với mình ở phần bình luận để mình sửa :V)
#include <iostream>
using namespace std;
int main()
{
int a=0,c=0,n,b;
cin>>n;
b=n;
while(b!=0){
a++;
b/=10;
}
b=n;
int arr[a];
while(b!=0){
arr[c]=b%10;
b/=10;
c++;
}
for(int i=0;i<a;i++){
for(int j=0;j<a;j++){
for(int m=0;m<a;m++){
if(i!=j&&j!=m&&m!=i)
cout<<arr[i]<<arr[j]<<arr[m]<<" ";
}
}
}
//samon247
return 0;
}