Professional Documents
Culture Documents
BTL1
BTL1
Ngày: 06/10/2023
Điểm:
Bài 1:
Đề bài: Cho hình vuông gồm 25 hình vuông đơn vị. Hãy điền các số từ 0
đến 9 vào mỗi hình vuông đơn vị sao cho những điều kiện sau được thỏa mãn:
a) Đọc từ trái sang phải theo hàng ta nhận được 5 số nguyên tố có 5 chữ số;
b) Đọc từ trên xuống dưới theo cột ta nhận được 5 số nguyên tố có 5 chữ số;
c) Đọc theo hai đường chéo chính ta nhận được 2 số nguyên tố có 5 chữ số;
d) Tổng các chữ số trong mỗi số nguyên tố đều là S cho trước.
Ví dụ hình vuông dưới đây với S = 11.
3 5 1 1 1
5 0 0 3 3
1 0 3 4 3
1 3 4 2 1
1 3 3 1 3
1.1 Sơ đồ khối
1 2 3 4 5
6 13 16 12 17
7 18 11 20 21
8 10 22 14 24
9 19 23 25 15
Bắt đầu
Lấy x X[k]
i=0
sai
i<k i++
đúng
Kiểm tra x có
thỏa mãn
sai
Các ô cần diền
đúng
End
Bắt đầu
Nhập S
Kiểm tra
Đúng S<1 || S>45 ||
d S ko nghiệm
là snt
Sai
X gồm k phần tử là
snt có S c/s , tổng = S
X [k]
x X có chứa 0
Điền hàng 1 cột 1
Đúng
In hv 5x5
End
1.1Sơ đồ khối
Thứ tự điền số
1 2 3 4 5
6 13 16 12 17
7 18 11 20 21
8 10 22 14 24
9 19 23 25 15
Kết thúc
Bắt đầu
Nhập S
Kiểm tra
Đúng S<1 || S>45 ||
d S nghiệm là
snt
Sai
X gồm các phần tử là
X [u] snt có S c/s , tổng = S
Hàm xử lý
Đúng
In hv 5x5
End
1.2 Chương trình ngôn ngữ C++
#include <bits/stdc++.h>
using namespace std;
using ll = long long;
int x[100000];
void nguyento(){
for(int i=0; i< 100000;i++)
x[i] = 1;
x[0] = 0;
x[1] = 0;
for(int i=2;i<=sqrt(100000);i++)
for(int j= i*i; j<= 100000; j+= i)
x[j] = 0;
}
if(b[i3]/100==a[2][0]*100+a[2][1]*10+a[2][2]){
n=b[i3];
hang(a,2,n); cot(a,2,n);
for(int i4=0;i4<k;i4++){//3
if(b[i4]/10==a[3][0]*1000+a[3][1]*100+a[3][2]*10+a[3][3]){
n=b[i4];
int ok =1;
hang(a,3,n); cot(a,3,n);
if(tonghang(a,4)!=s) ok=0;
int q=0;
for(int j=0;j<5;j++){
q=q*10+a[j0][j];
if(x[q]==0)
ok =0;
break;
}
if(ok==1){
h++;
}
cout << endl;
}return 0;
}
}
}
}
}
}
}
}
}
}
}
}
if(h==0) cout<<" Khong co ket qua phu hop voi tong s vua nhap!!\n";
}
}
1.3 Kết quả
Bài 2:
Đề bài: Liệt kê các xâu nhị phân có độ dài n.
2.1 Sơ đồ khối
Start
Nhập n
In Xâu S
Duyệt xâu S từ phải
sang trái .
Sai Gán chữ só 0 đấu tiên
Sinh cấu hình kế tiếp thành 1 và tất cả chữ sô
bên phải nó thành 0
In Xâu S
Kiểm tra
Sai XâuS có là Là xâu nhị phân
cấu hình cuối
Gồm n chữ số 1
Đúng
End
2.2 Chuong trình trên ngôn ngữ C++
#include <bits/stdc++.h>
using namespace std;
int ktxaucuoi(string s){
for(int i=0;i<s.length();i++){
if(s[i]==0) return 0;
}
return 1;
}
int main(){
cout<< " Nhap do dai xau: ";
int n; cin >>n;
cout << " Cac xau thoa man la: \n";2string s="";
while(n--){
s+="0";
}
cout <<" "<< s <<endl;
int ok =0;
while(ok==0){
lap:
ok=ktxaucuoi(s);
for(int i=s.length()-1;i>=0;i--){
if(s[i]=='0'){
s[i]='1';
for(int j=i+1;j<s.length();j++) s[j]='0';
cout << " "<<s <<endl;
goto lap;
}
}
}
}