1. Trang chủ
  2. » Công Nghệ Thông Tin

thuật toán về số và bài tập số

10 526 0

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

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 10
Dung lượng 325 KB

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

Nội dung

Tính xem có tất cả bao nhiêu vé xe hạnh phúc... Có bao nhiêu số tự nhiên có đúng 6 chữ số được tạo thành từ A, sao cho số đó có ít nhất một cặp số 0,2 đứng cạnh nhau.

Trang 1

1

Trang 5

Bài toán 1: Có bao nhiêu số tự nhiên lẻ có 5 chữ số, trong số đó phải có mặt chữ số 3?

Bài toán 2: Cho các chữ số {0,1,2,3,4,5,6} Tính tổng của các số tự nhiên chẵn, có 4 chữ số đôi một khác nhau, được lập từ 7 chữ số trên

Bài toán 3: Cho A={0,1,2,3,5,7,8,9} Có bao nhiêu số tự nhiên chẵn

có 5 chữ số, trong số đó phải có mặt số 1 và số 3, được tạo thành từ A

1 Bây giờ ta bắt tay vào giải quyết Bài toán 1 (bằng PASCAL)

Bước1:Xây dựng thuật toán:

- Ta cần xây dựng số abcde¯¯¯¯¯¯¯¯¯¯¯¯, vậy cần

có 5 biến a,b,c,d,e kiểu shortint

- Thêm một biến S kiểu longint để nhận kết quả.

- Đầu tiên gán kết quả S:=0

- Vì a≠0 nên ta sẽ cho a chạy từ 1 đến 9

- b,c,d ta cho chạy từ 0 đến 9

- Vì abcde¯¯¯¯¯¯¯¯¯¯¯¯ là số lẻ nên ta cho e chạy từ 1 đến 9 và chỉ thực hiện công việc tiếp nếu e {∈ 1,3,5,7,9}

- Cuối cùng nếu số tạo thành thoả mãn điều kiện "có mặt chữ số 3"

thì ta cho kết quả S tăng thêm 1 đơn vị

Thuật toán thật đơn giản phải không nào!

Bước 2: Viết code và trình bày kết quả:

[quotename='PASCAL CODE 01']

Var a,b,c,d,e: shortint;

S: longint;

Begin

S:=0;

for a:=1 to 9 do

for b:=0 to 9 do

for c:=0 to 9 do

for d:=0 to 9 do

for e:=1 to 9 do

if ((e=1)or(e=3)or(e=5)or(e=7)or(e=9))and((a=3)or(b=3)or(c=3)or(d=3)or( e=3)) then

S:=S+1;

Write('So cac so thoa man la S= ',S);

Readln;

End

[/quote]

Chạy chương trình trên ta được kết quả là So cac so thoa man la S= 21672

2 Giải bài toán 2:

5

Trang 6

Bài toán 2: Cho các chữ số {0,1,2,3,4,5,6} Tính tổng của các số tự nhiên chẵn, có 4 chữ số đôi một khác nhau, được lập từ 7 chữ số trên

Bước1:Xây dựng thuật toán:

- Ta cần xây dựng số abcd¯¯¯¯¯¯¯¯¯¯, vậy cần

có 4 biến a,b,c,d kiểu shortint

- Thêm một biến S kiểu longint để nhận kết quả.

- Đầu tiên gán kết quả S:=0

- Vì a≠0 nên ta sẽ cho a chạy từ 1 đến 6

- b,c ta cho chạy từ 0 đến 6

- Vì abcd¯¯¯¯¯¯¯¯¯¯ là số chẵn nên ta cho d chạy từ 0 đến 6 và chỉ thực hiện công việc tiếp nếu d {∈ 0,2,4,6}

- Cuối cùng nếu số tạo thành thoả mãn điều kiện "các chữ số đôi một khác nhau"

thì ta cho kết quả S cộng thêm giá trị

của abcd¯¯¯¯¯¯¯¯¯¯=1000∗a+100∗b+10∗c+d

Thuật toán thật đơn giản phải không nào!

Bước 2: Viết code và trình bày kết quả:

[quotename='PASCAL CODE 02']

Var a,b,c,d: shortint;

S: longint;

Begin

S:=0;

for a:=1 to 6 do

for b:=0 to 6 do

for c:=0 to 6 do

for d:=0 to 6 do

if ((d=0)or(d=2)or(d=4)or(d=6))and((a<>b)and(a<>c)and(a<>d)and(b<>c) and(b<>d)and(c<>d)) then

S:=S+1000*a+100*b+10*c+d;

Write('So cac so thoa man la S= ',S);

Readln;

End

[/quote]

Chạy chương trình trên ta được kết quả là So cac so thoa man la

S= 1577160

3 Giải bài toán 3

Bài toán 3: Cho A={0,1,2,3,5,7,8,9} Có bao nhiêu số tự nhiên chẵn

có 5 chữ số, trong số đó phải có mặt số 1 và số 3, được tạo thành từ A

6

Trang 7

Bước1:Xây dựng thuật toán:

- Ta cần xây dựng số abcde¯¯¯¯¯¯¯¯¯¯¯¯, vậy cần

có 5 biến a,b,c,d kiểu shortint

- Thêm một biến S kiểu longint để nhận kết quả.

- Đầu tiên gán kết quả S:=0

- Vì a≠0 nên ta sẽ cho a chạy từ 1 đến 9 và chỉ lấy các giá trị thuộc A

- b,c,d ta cho chạy từ 0 đến 9 và chỉ lấy các giá trị thuộc A

- Vì abcde¯¯¯¯¯¯¯¯¯¯¯¯ là số chẵn nên ta cho e chạy từ 0 đến 8 và chỉ thực hiện công việc tiếp nếu e {∈ 0,2,8}

- Cuối cùng nếu số tạo thành thoả mãn điều kiện "phải có mặt chữ số 1 và chữ số 3"

thì ta cho kết quả S tăng thêm 1 đơn vị

Thuật toán thật đơn giản phải không nào!

Bước 2: Viết code và trình bày kết quả:

[quotename='PASCAL CODE 03']

Var a,b,c,d,e: shortint;

S: longint;

Begin

S:=0;

for a:=1 to 9 do

for b:=0 to 9 do

for c:=0 to 9 do

for d:=0 to 9 do

for e:=0 to 8 do

if ((e=0)or(e=2)or(e=8))and((a<>4)and(a<>6))and((b<>4)and(b<>6))and(( c<>4)and(c<>6))and((d<>4)and(d<>6))and(((a=1)and((b=3)or(c=3)or(d=3 )))or((b=1)and((a=3)or(c=3)or(d=3)))or((c=1)and((a=3)or(b=3)or(d=3)))or( (d=1)and((a=3)or(b=3)or(c=3))))

then

S:=S+1;

Write('So cac so thoa man la S= ',S);

Readln;

End

[/quote]

Chạy chương trình trên ta được kết quả là So cac so thoa man la S= 1644

7

Trang 8

Bài toán 4: Vé xe hạnh phúc:

- Một vé xe buýt bất kỳ có mã số là một dãy gồm 6 số tự nhiên, được gọi

là vé xe hạnh phúc nếu tổng của 3 chữ số đầu bằng tổng của 3 chữ số cuối

Tính xem có tất cả bao nhiêu vé xe hạnh phúc

Bài làm

Var a,b,c,d,e,f: shortint;

S: longint;

Begin

S:=0;

for a:=0 to 9 do for b:=0 to 9 do

for c:=0 to 9 do

for d:=0 to 9 do for e:=0 to 9 do for f:=0 to 9 do

if a + b + c = d + e + f then S:=S+1;

Write('So cac so thoa man la S= ',S);

Readln;

End

Bài toán 6:

- Cho tập A={0,1,2,4,7,8,9} Có bao nhiêu số tự nhiên nhỏ hơn 80000 mà chia hết cho 3, có các chữ số được chọn từ tập A

Số tự nhiên lớn nhất nhưng nhỏ hơn 80000 là 79999

vậy ta cho a chạy từ 1 -> 7 và b,c,d,e chạy từ 0 -> 9, điều kiện a,b,c,d,e khác 3;5;6 (do 3;5;6 không có trong tập A)

Thêm điều điện chia hết cho 3 là a+b+c+d+e chia hết cho 3

vậy ta có bài làm sau

8

Trang 9

Bài toán 7:

- Cho tập A={0,1,2} Có bao nhiêu số tự nhiên có đúng 6 chữ số được tạo thành từ A, sao cho số đó có ít nhất một cặp số 0,2 đứng cạnh nhau

Câu này e ko chắc với ý tưởng của mình

do 0 và 2 đứng cạnh nhau nên tổng của chúng bằng 2, ngoài ra trong tập A, ngoài 0 và 2 thì không còn số nào có tổng bằng 2 nên ta có bài làm sau

Bài 9: Viết chương trình tính N!! (giai thừa kép) với N!! được định nghĩa như sau:

9

Trang 10

N!!=1 với N=0.

N!!=1.3.5….Nvới n lẻ.

N!!=2.4.6…N với n chẵn

program giaithuakep;

uses crt;

var gt:longint;

n,tg:integer;

Begin

Clrscr;

Repeat

write('Nhap n=');readln(n);tg:=n; Until n>=0;

gt:=1;

while n>0 do

begin

gt:=gt*n;

n:=n-2;

end;

writeln(tg,'!! = ',gt);

Readln;

End.

10

Ngày đăng: 07/02/2017, 15:20

TỪ KHÓA LIÊN QUAN

w