Bài đăng

Đang hiển thị bài đăng từ Tháng 3, 2018

sắp xếp chèn ( Insertion sort )

Bài giải : #include<iostream> #include<fstream> using namespace std; void doctep( float a[ 100 ], int & n) { ifstream doc( "output.txt" ); doc >> n; for ( int i = 0 ; i < n ; i ++ ) doc >> a[i]; } void ghi( float a[ 100 ], int n) { ofstream ghi( "sapxepchen.txt" ); ghi << "sap xep chen la: " ; for ( int i = 0 ; i < n; i ++ ) { ghi << a[i] << " " ; } } void doicho( float & x, float & y) { int tmp = x; x = y; y = tmp; } void chen( float N[ 100 ], int & n, int x, int i){ n = n + 1 ; for ( int j = n - 1 ; j > i; j -- ){ N[j] = N[j - 1 ]; } N[i] = x; } void sapxep( float a[ 100 ], int n){ float b[ 100 ]; int m = 0 ; b[ 0 ] = a[ 0 ]; m = 1 ; for ( int i = 1 ; i < n; i ++ ){ bool lonNhat = true; for ( int j = 0 ; j < m; j ++ ){ if (b[j] > a [i]){ cout << "chen " <

sắp xếp chọn ( selection sort)

Đề bài : sắp xếp theo thuật toán chọn Bài giải: #include<iostream> #include<fstream> using namespace std; bool doctep( int a[ 100 ], int & n){ ifstream doc( "output.txt" ); if (doc . fail()){ return false; } doc >> n; for ( int i = 0 ; i < n; i ++ ){ doc >> a[i]; } return true; } void doicho( int & x, int & y){ int tmp = x; x = y; y = tmp; } // 4 ! 5 2 8 3 // 2 5 ! 4 8 3 // 2 3 4 ! 8 5 // 2 3 4 8 ! 5 // 2 3 4 5 8 void sapxepchon( int a[ 100 ], int n){ int csMin; for ( int i = 0 ; i < n - 1 ; i ++ ){ csMin = i; for ( int j = i + 1 ; j < n; j ++ ){ if (a[j] < a[csMin]){ csMin = j; } } if (csMin != i) { doicho(a[i], a[csMin]); } } } void ghitep( int a[ 100 ], int n){ ofstream ghi( "sxepchon.txt" ); ghi << "sap xep chon la: " ; for ( int i = 0 ; i < n; i ++ ) { ghi << a[i] <<

đếm in xâu nhị phân (dùng thuật toán sinh )

Đề bài:  Một xâu nhị phân độ dài n được gọi là thuận nghịch hay đối xứng nếu đảo ngược xâu nhị phân đó ta vẫn nhận được chính nó. Cho số tự nhiên n (n nhập từ bàn phím). Hãy viết chương trình liệt kê tất cả các xâu nhị phân thuận nghịch có độ dài n . Các xâu nhị phân tìm được ghi lại trong file ketqua.out theo khuôn dạng: ·         Dòng đầu tiên ghi lại số K là số các xâu thuận nghịch có độ dài n tìm được; ·         K dòng kế tiếp ghi lại mỗi dòng một xâu nhị phân thuận nghịch có độ dài n. Hai phần tử khác nhau của xâu thuận nghịch được ghi cách nhau một vài khoảng trống. Ví dụ với n = 4 ta tìm được 4 xâu nhị phân thuận nghịch như dưới đây. ketqua.out                          4                          0                 0                 0                 0                                 0                 1                 1                 0                                 1                 0                 0                 1                                 1

sử dụng quay lui in số thỏa mãn các điều kiện

Đề bài: Hãy viết chương trình liệt kê tất cả các số tự nhiên K thỏa mãn đồng thời những điều kiện dưới đây: (i)                   K là số có 5 chữ số; (ii)                 K là số nguyên tố; (iii)               Đảo ngược các chữ số trong của K cũng là một số nguyên tố; (iv)                Tổng các chữ số của K cũng là một số nguyên tố; (v)                  Mỗi chữ số trong K cũng là những số nguyên tố. bài giải: #include<iostream> #include<cmath> using namespace std; int namchuso( int a[]){ if (a[ 1 ] == 0 ) return 0 ; else return 1 ; } long giatri( int * a , int n){ long s = 0 , t = 1 ; for ( int i = n; i >= 1 ; i -- ){ s = s + a[i] * t; t = t * 10 ; } return s; } void xuat( int a[], int n){ for ( int i = 1 ; i <= n; i ++ ) cout << a[i]; cout << endl; } bool nto( int x){ if ( x < 2 ) return false; for ( int i = 2 ; i <= sqrt(x); i ++ ){ if ( x % i == 0 ) r

sử dụng giải thuật sinh sinh số thập phân thỏa mãn các điều kiện

Hãy viết chương trình liệt kê tất cả các số tự nhiên K thỏa mãn đồng thời những điều kiện dưới đây: (i)                 K là số có 5 chữ số; (ii)              K là số nguyên tố; (iii)            K là số thuận nghịch (k là số thuận nghịch nếu đọc xuôi hay đọc ngược các chữ số của k ta đều nhận được một số như nhau. Ví dụ số: 30303); (iv)             Biểu diễn của K ở hệ cơ số B ( B bất kỳ được nhập từ bàn phím cũng là một số thuận nghịch. Ví dụ số k=30303 có biểu diễn ở hệ cơ số 8 là  73137 cũng là một số thuận nghịch; Bài giải: #include<iostream> #include<cmath> #include<iomanip> using namespace std; void xuat( int a[], int n){ for ( int i = 0 ; i < n; i ++ ) cout << setw( 1 ) << a[i]; cout << endl; } void sinh( int a[], int n, int & ok){ int i = n - 1 ; while ( i >= 0 && a[i] == 9 ){ a[i] = 0 ; i -- ; } if ( i >= 0 ){ a[i] = a[i] + 1 ; } else ok = 0 ; } bool NguyenT

Là số nguyên tố, từng số là nguyên tố, tổng, tích là số chia hết cho 1 số bất kì và không chứa 1 số nhập từ bàn phím

Đề bài: Hãy viết chương trình liệt kê tất cả các số tự nhiên K thỏa mãn đồng thời những điều kiện dưới đây: (i)                  K là số có 5 chữ số; (ii)                K là số nguyên tố; (iii)              Mỗi chữ số của K cũng là các số nguyên tố; (iv)               Tổng các chữ số của K là một số chia hết cho P (P được nhập từ bàn phím); (v)                 Tích các chữ số của K là một số chia hết cho Q  (Q được nhập từ bàn phím); (vi)               Các chữ số của K không chứa số R (được nhập từ bàn phím). Bài giải: #include<iostream> #include<cmath> using namespace std; bool nto ( int x){ if ( x < 2 ) return false ; for ( int i = 2 ; i <= sqrt(x); i ++ ){ if ( x % i == 0 ) return false ; } return true ; } bool tungso ( int n){ int a[ 100 ]; int i = 0 ; while ( n > 0 ){ a[i] = n % 10 ; n = n / 10 ; i ++ ; } for ( int j = 0 ; j < i; j ++ ){ if ( ! nto(a[j])) return false ; } ret

là số nguyên tố, mỗi chữ số là nguyên tố, tổng là số thuận nghịch 2cs, tích là số thuận nghịch 3 cs

Đề bài: Hãy viết chương trình liệt kê tất cả các số tự nhiên K thỏa mãn đồng thời những điều kiện dưới đây: (i)                  K là số có 5 chữ số; (ii)                K là số nguyên tố; (iii)              Mỗi chữ số của K cũng là những số nguyên tố; (iv)               Tổng các chữ số của K là một số thuận nghịch hai chữ số; (v)                 Tích các chữ số của K là một số thuận nghịch ba chữ số. Bài giải: #include<iostream> #include<cmath> using namespace std; bool nto ( int x){ if ( x < 2 ) return false ; for ( int i = 2 ; i <= sqrt(x); i ++ ){ if ( x % i == 0 ) return false ; } return true ; } bool kttn ( int n) { int m = n; int dao = 0 ; while (n > 0 ) { int t = n % 10 ; dao = dao * 10 + t; n = n / 10 ; } if (dao == m) return true ; return false ; } bool tungso ( int n){ int a[ 100 ]; int i = 0 ; while ( n > 0 ){ a[i] = n % 10 ; n = n / 10 ; i ++ ; }

Là nguyên tố đảo ngược là ngto, tổng các chữ số là nto, từng số là nto

Đề bài : Hãy viết chương trình liệt kê tất cả các số tự nhiên K thỏa mãn đồng thời những điều kiện dưới đây: (i)                  K là số có 5 chữ số; (ii)                K là số nguyên tố; (iii)              Đảo ngược các chữ số trong của K cũng là một số nguyên tố; (iv)               Tổng các chữ số của K cũng là một số nguyên tố; (v)                 Mỗi chữ số trong K cũng là những số nguyên tố. bài giải: #include<iostream> #include<cmath> using namespace std; bool nto ( int x){ if ( x < 2 ) return false ; for ( int i = 2 ; i <= sqrt(x); i ++ ){ if ( x % i == 0 ) return false ; } return true ; } bool tong ( int n){ int tong = 0 ; while ( n > 0 ){ int t = n % 10 ; tong = tong + t; n = n / 10 ; } if (nto(tong)) return true ; else return false ; } bool daongc ( int n){ int dao = 0 ; while ( n > 0 ){ int t = n % 10 ; dao = dao * 10 + t; n = n / 10 ; } if (nto(dao)

là sô nguyên tố, là số thuận nghịch, chuyển cơ số bất kì cũng là thuận nghịch

Đề bài: Hãy viết chương trình liệt kê tất cả các số tự nhiên K thỏa mãn đồng thời những điều kiện dưới đây: (i)                  K là số có 5 chữ số; (ii)                K là số nguyên tố; (iii)              K là số thuận nghịch (k là số thuận nghịch nếu đọc xuôi hay đọc ngược các chữ số của k ta đều nhận được một số như nhau. Ví dụ số: 30303); (iv)               Biểu diễn của K ở hệ cơ số B ( B bất kỳ được nhập từ bàn phím cũng là một số thuận nghịch. Ví dụ số k=30303 có biểu diễn ở hệ cơ số 8 là  73137 cũng là một số thuận nghịch. Bài giải : #include<iostream> #include<cmath> using namespace std; char Code[ 100 ] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ" ; bool NguyenTo ( int x) { if (x < 2 ) return false ; for ( int i = 2 ; i <= sqrt(x); i ++ ) if (x % i == 0 ) return false ; return true ; } bool kttn ( int n) { int m = n; int dao = 0 ; while (n > 0 ) { int t = n % 10 ; dao = dao * 10 + t; n = n