1. Trang chủ
  2. » Luận Văn - Báo Cáo

Minimalist Simple Annual Report (1).Pdf

14 5 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Bài Lập Trình Số 1
Tác giả Nguyễn Thị Yến, Nguyễn Thị Khánh Vân, Nguyễn Bích Ngọc, Trần Ngọc Châu, Đặng Thị Mỹ Tâm
Người hướng dẫn Giảng Viên Nguyễn Thị Mai Trang
Trường học Trường Đại Học
Chuyên ngành Toán rời rạc 1
Thể loại Bài Lập Trình
Năm xuất bản 2023
Thành phố Hà Nội
Định dạng
Số trang 14
Dung lượng 518,04 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Minimalist Simple annual report Họ và tên Nguyễn Thị Yến Nguyễn Thị Khánh Vân Nguyễn Bích Ngọc Trần Ngọc Châu Đặng Thị Mỹ Tâm 1 2 3 4 5 Nhóm học phần (BT) Nhóm 13 (01) Bài lập trình Số 1 Môn Toán rời[.]

Trang 1

Họ và tên

Nguyễn Thị Yến Nguyễn Thị Khánh Vân Nguyễn Bích Ngọc

Trần Ngọc Châu Đặng Thị Mỹ Tâm

1.

2.

3.

4.

5.

Điểm

Trang 2

ĐỀ BÀI 1

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:

Đọc từ trái sang phải theo hàng ta nhận được 5 số nguyên tố có

5 chữ số;

Đọ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 theo hai đường chéo chính ta nhận được 2 số nguyên tố có

5 chữ số;

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.

Trang 3

SƠ ĐỒ KHỐI - HÀM SINH

start b[100000]

kiểm tra S ( S>45 || S<1

)

nhập tổng S

X[dem]

chọn x thuộc X

thực hiện việc điền

kiểm tra các cột từ 2 đến 4

in ô vuông 5x5 end

yes

no

yes

no

Thêm nội dung văn bản mảng lưu các số nguyên tố < 100000

mảng lưu các số nguyên tố 5c/số, tổng các chữ số = S, có dem

phần tử

chọn một số bất kì thuộc X, có các chữ

số khác 0

hàm điền

các số thuộc X

Trang 4

SƠ ĐỒ KHỐI - HÀM ĐIỀN

start điền x hàng 1 vào

điền cột 1

điền chéo phụ

điền chéo chính

điền hàng 5

điền hàng 4

điền hàng 2

điền hàng 3

end

các chữ số của x khác 0

ktra chữ số đầu tiên và chữ số cuối cùng của x trùng ô 9, ô 5

ktra số đầu tiến của x

trùng ô 1, chữ số khác 0

ktra chữ số đầu tiên

của x trùng với ô 1 và

chữ sô thứ 3 trùng 0

ktra chữ số đầu của x trùng ô 9, chữ số cuối trùng ô 15

ktra chữ số đấu của x trùng ô 6, chữ số 2 trùng

ô 13, chữ số 4 trùng ô 12

ktra chữ số đầu của x

trùng ô 8, chữ số thứ 2

trùng ô 10, chữ số thứ 4

trùng ô 12

ktra chữ số đầu tiên

trùng ô 7, chữ số thứ 3

trùng ô 11

Trang 5

BÀI CODE

#include <bits/stdc++.h>

using namespace std;

#define ll long long

int b[100001]; // mang so nguyen to tu 0 - 100000

void sang() // sang so nguyen to va luu vao mang b

{

for (int i = 0; i <= 100000; i++)

b[i] = 1;

b[0] = b[1] = 0;

for (int i = 2; i <= sqrt(100000); i++)

for (int j = i * i; j <= 100000; j += i)

b[j] = 0;

}

int tng(int n) // tinh tong cac chu so

{

int t = 0;

while (n > 0)

{

t += n % 10;

n /= 10;

}

return t;

}

int check(int n) // kiem tra so co ton tai chu so 0 hay khong

{

while (n > 0)

{

if (n % 10 == 0)

return 0;

n /= 10;

}

return 1;

}

int checkcs(int n)// kiem tra co ton tai chu so chia het cho 2 hoac 5 hay khong {

while (n > 0)

{

int c = n % 10;

if (c % 2 == 0 || c == 5)

return 0;

Trang 6

n /= 10;

}

return 1;

}

int a[10][10], s[10000];

void dienngang(int x, int a[][10], int b) // dien hang ngang b {

for (int i = 4; i >= 0; i )

{

a[b][i] = x % 10;

x /= 10;

}

}

void diendoc(int x, int a[][10], int b) // dien cot doc b

{

for (int i = 4; i >= 0; i )

{

a[i][b] = x % 10;

x /= 10;

}

}

int dem = 0;

int v[10000] = {0};

int checkv() // kiem tra da duyet qua so nay hay chua

{

for (int i = 0; i < dem; i++)

if (v[i] == 0)

return 1;

return 0;

}

int tong;

int main()

{

sang();

srand(time(NULL));

int n;

Moretime:

int ok = 0;

memset(v, 0, sizeof(v));

dem = 0;

Trang 7

do

{

cout<<"Nhap tong: ";

cin >> tong;

} while (tong > 45 || tong < 1);

for (int i = 10000; i <= 99999; i++) // mang snt co tong cs = s;

if (tng(i) == tong && b[i] == 1)

{

s[dem] = i;

dem++;

}

if (dem == 0)

{

cout << "KO CO SO NAO LA SNT VA CO TONG CHU SO BANG TONG" << endl; goto Moretime;

}

while (1)

{

int c = 0;

for (int i = 0; i < dem; i++)// ktra cs 0

if (check(s[i]))

c = 1;

if (c == 0)

{

cout << "KHONG CO SO NAO THOA MAN CHO HANG 1"<<endl;

goto Moretime;

}

int i = rand() % dem;

while (1)

{

if (v[i] == 0 && check(s[i])) // ktra ham random da duyet qua so nay chua, tuong tu mang dem;

{

v[i] = 1;

break;

}

v[i] = 1; // da duyet qua danh 1

if (checkv() == 0)

{

cout << "DA KIEM TRA HET TAT CA TRH VA KHONG CO KET QUA THOA MAN"<<endl;

goto Moretime;

Trang 8

}

i = rand() % dem;

}

n = s[i];

dienngang(n, a, 0);

for(int i0 = 0; i0 < dem; i0++)

{

if(s[i0] / 10000 == a[0][0] && check(s[i0]))

{

n = s[i0];

diendoc(n, a, 0);

for (int i1 = 0; i1 < dem; i1++) // cheo phu

{

if ((s[i1] % 10 == a[0][4] && s[i1] / 10000 == a[4][0]))

{

n = s[i1];

for (int i11 = 0; i11 <= 4; i11++)

{

a[i11][4 - i11] = n % 10;

n /= 10;

}

for (int i2 = 0; i2 < dem; i2++) // cheo chinh

{

if ((s[i2] / 10000 == a[0][0] && (s[i2] % 1000) / 100 == a[2][2]))

{

n = s[i2];

for (int j22 = 4; j22 >= 0; j22 )

{

a[j22][j22] = n % 10;

n /= 10;

}

for (int i6 = 0; i6 < dem; i6++) // ngang 4

{

if (checkcs(s[i6]) && s[i6] / 10000 == a[4][0] && s[i6] % 10 == a[4][4]) {

n = s[i6];

dienngang(n, a, 4);

if (a[0][1] + a[4][1] > tong || a[0][2] + a[4][2] > tong || a[0][3] + a[4][3] > tong || a[0][4] + a[4][4] > tong)

continue;

for (int i5 = 0; i5 < dem; i5++) // ngang 3

Trang 9

{

if ((s[i5] / 10000 == a[3][0] && (s[i5] % 10000) / 1000 == a[3][1] && (s[i5] % 100) / 10 == a[3][3]))

{

n = s[i5];

dienngang(n, a, 3);

if (a[0][1] + a[4][1] + a[3][1] > tong || a[0][2] + a[4][2] + a[3][2] > tong || a[0][3] + a[4][3] + a[3][3] > tong || a[0][4] + a[4][4] + a[3][4] > tong)

continue;

for (int i3 = 0; i3 < dem; i3++) // ngang 1

{

if ((s[i3] / 10000 == a[1][0] && (s[i3] % 10000) / 1000

== a[1][1] && (s[i3] % 100) / 10 == a[1][3]))

{

n = s[i3];

dienngang(n, a, 1);

if (a[0][1] + a[4][1] + a[3][1] + a[1][1] > tong || a[0] [2] + a[4][2] + a[3][2] + a[1][2] > tong || a[0][3] + a[4][3] + a[3][3] + a[1][3] > tong || a[0][4] + a[4][4] + a[3][4] + a[1][4] > tong)

continue;

for (int i4 = 0; i4 < dem; i4++) // ngang 2

{

int check = 1;

if (s[i4] / 10000 == a[2][0] && (s[i4] % 1000) / 100

== a[2][2])

{

n = s[i4];

dienngang(n, a, 2);

if (a[0][1] + a[4][1] + a[3][1] + a[1][1] + a[2][1]

!= tong || a[0][2] + a[4][2] + a[3][2] + a[1][2] + a[2][2] != tong || a[0][3] + a[4][3] + a[3][3] + a[1][3] + a[2][3] != tong || a[0][4] + a[4][4] + a[3][4] + a[1][4] + a[2][4]

!= tong)

continue;

for (int j = 1; j < 5; j++) // kiem tra cac cot co thoa man la so nguyen to, tong chu so la s

{

int t = 0;

for (int i = 0; i < 5; i++)

t = t * 10 + a[i][j];

if (b[t] == 0)

Trang 10

{

check = 0; break; }

}

if (check == 1) {

cout << " - HINH VUONG TIM DUOC LA -\n"; for (int i18 = 0; i18 < 5; i18++) {

cout << " ";

for (int j19 = 0; j19 < 5; j19++) cout << a[i18][j19] << " "; cout << "\n"; }

goto Moretime; }

}

}

}

}

}

}

}

}

}

}

}

}

}

}

}

}

Trang 11

KẾT QUẢ

Trang 12

ĐỀ BÀI 2

Liệt kê (duyệt) các xâu nhị phân có độ dài n.

Xâu X=(X1X2 Xn): Xi = 0,1; i = 1,2, ,n được gọi là xâu nhị phân có độ dài n Ví dụ với n = 4, ta có 16 xâu nhị phân.

start nhập n bit

khởi tạo cấu hình đầu tiên cho a[j]=0 sinh

chuyển thành 0, dịch sang trái

in cấu hình hiện tại

gặp 1

gặp 1

end

sinh

in cấu hình cuối cùng và dừng

SƠ ĐỒ KHỐI

true

false

false

true

khởi tạo cấu hình đầu tiên cho a[i]=0

sinh cấu hình kế tiếp bắt đầu từ bit cuối cùng đi tìm bit 0 đầu tiên

Trang 13

BÀI CODE

#include<bits/stdc++.h>

using namespace std;

int n,a[100],ok;

void ktao(){

//kien tao cau hinh dau tien

for(int i=1;i<=n;i++){

a[i]=0;

}

}

void sinh(){

for(int i=1;i<=n;i++){

cout<<a[i]; //in cau hinh hien tai

}

cout<<endl;

int i=n;

while(i>=1&&a[i]==1){

a[i]=0;

i;

//bat dau tu bit cuoi cung, di tim bit 0 dau tien

}

if(i==0){

ok=0; //day la cau hinh cuoi cung

}

else{

a[i]=1;

}

}

int main(){

cin>>n;

ok=1;

ktao();

while(ok){

sinh(); //sinh cau hinh ke tiep, xuat hien cau hinh cuoi cung thi dung }

return 0;

}

Trang 14

KẾT QUẢ

Ngày đăng: 26/10/2023, 10:09

HÌNH ẢNH LIÊN QUAN

SƠ ĐỒ KHỐI - HÀM SINH - Minimalist  Simple Annual Report (1).Pdf
SƠ ĐỒ KHỐI - HÀM SINH (Trang 3)
SƠ ĐỒ KHỐI - HÀM ĐIỀN - Minimalist  Simple Annual Report (1).Pdf
SƠ ĐỒ KHỐI - HÀM ĐIỀN (Trang 4)
SƠ ĐỒ KHỐI - Minimalist  Simple Annual Report (1).Pdf
SƠ ĐỒ KHỐI (Trang 12)

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN