pascal: in ra các hoán vị
#1
Đã gửi 13-03-2012 - 20:46
p/s: viết cả thuật toán nha mọi người
Mong rằng toán học bớt khô khan
Em ơi trong toán nhiều công thức
Cũng đẹp như hoa lại chẳng tàn
#2
Đã gửi 13-03-2012 - 22:53
uses crt; const maxn=10; var a: array[1..maxn] of integer; n,m: integer; sn: longint; (*==============================*) procedure init; var i: integer; begin write('Nhap so N=');readln(n); for i:=1 to n do a[i]:=i; end; (*==============================*) procedure swap( var x,y: integer); var z: integer; begin z:=x; x:=y; y:=z; end; (*==============================*) procedure print; var i: integer; begin sn:=sn+1; for i:=1 to n do write(a[i]); writeln; end; (*==============================*) procedure hv(k: integer); var j: integer; begin if k=1 then print else for j:=k downto 1 do begin swap(a[k],a[j]); hv(k-1); swap(a[k],a[j]); end; end; (*===============================*) begin clrscr; sn:=0; init; hv(n); if sn<>0 then writeln('Co tat ca',sn,' hoan vi cua ',n,' so') else writeln('Vo nghiem'); readln; end.
- hoangtrong2305, trbinh, C a c t u s và 2 người khác yêu thích
$$\text{LOVE}\left( x \right)|_{x = \alpha}^\Omega = + \infty $$
I'm still there everywhere.
#3
Đã gửi 11-05-2014 - 16:11
Sao mình chạy chương trình nó không ra gì cả bạn ơi, bạn xem lại giúp mình
#4
Đã gửi 30-05-2015 - 10:32
HAY NHỈ!! NHƯNG TIẾC LÀ VIẾT SAI HẾT RỒI!!
Bài viết đã được chỉnh sửa nội dung bởi DuongThelong: 30-05-2015 - 10:34
#5
Đã gửi 22-06-2015 - 22:32
HAY NHỈ!! NHƯNG TIẾC LÀ VIẾT SAI HẾT RỒI!!
Sai chỗ nào vậy?
$$\text{LOVE}\left( x \right)|_{x = \alpha}^\Omega = + \infty $$
I'm still there everywhere.
#6
Đã gửi 04-10-2015 - 14:19
Su dung thuat vet can:
procedure hoanvi(i);
var
begin
for j:=1 to n do
if b[j] then
begin
a[i]:=j;
b[i]:=false;
if (i=n) then result else hoanvi(i+1);
b[i]:=true;
end;
end;
Bài viết đã được chỉnh sửa nội dung bởi hoicmvsao: 04-10-2015 - 14:20
#7
Đã gửi 07-07-2017 - 17:48
vd: n=3 >> 1 2 3, 132, 213, 231, 312, 321 }
*Lưu ý:* ae nhập n<=8 thôi chứ nó tỉ tỉ tường hợp thì chạy nát máy (n>8 chắc đc nhưng nó chạy thì lâu lắm)
var a:array[0..1000000] of string;
Bài viết đã được chỉnh sửa nội dung bởi cuongtk2002: 07-07-2017 - 18:03
#8
Đã gửi 28-12-2017 - 16:47
Sai chỗ nào vậy?
Bạn giỏi toán quá
Chuyên cung cấp các sản phẩm máy bơm nước matra của Ý và máy bơm Tsurumi của Nhật Bản http://giamaybomnuoc.com/may-bom-nuoc-thai-tsurumi.html
#9
Đã gửi 26-03-2019 - 02:21
#include<iostream> #define FOR(i, a, b) for(int i=a; i<=b; i++) using namespace std; bool b[10]; int a[10]; int n, i, j; void printf(){ FOR(i, 1, n) cout<<a[i]; cout<<endl; } void f(int u){ if (u==n+1){ printf(); return; } FOR(i, 1, n) if (!b[i]){ b[i]=true; a[u]=i; f(u+1); b[i]=false; } } int main(){ cin>> n; f(1); }
2 người đang xem chủ đề
0 thành viên, 2 khách, 0 thành viên ẩn danh