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;
}

Câu hỏi trong lớp Xem thêm