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

Một số bài tập nâng cao NNLT Pascal

237 171 5

Đ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

Định dạng
Số trang 237
Dung lượng 1,76 MB

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

Nội dung

Giới thiệu Trong tài liệu này tuyển chọn một số bài toán tin cơ bản ở nhiều nguồn khác nhau. Nó thường xuất hiện trong các kỳ thi học sinh giỏi các cấp. Các bài tập trong tài liệu này tương đối đơn giản. Không sử dụng bất kỳ một thuật toán đặc biệt (đệ quy quay lui, quy hoạch động, tham lam ...) nào, mỗi bài có thể có nhiều cách giải khác nhau. Nhằm mục đích ôn lại các loại cấu trúc dữ liệu đơn giản và mối tương quan giữa các cấu trúc này. Nhằm hình thành tư duy lập trình bước đầu cho bạn đọc. Để có thể tham khảo tốt nhất về tài liệu này các bạn cần đọc thêm kiến thức về chương trình con, nhập xuất dữ liệu bằng tệp văn bản. Nếu cảm thấy thú vị các bạn có thể tham khảo thêm một số tài liệu sau: o Tuyển chọn 100 bài tập lập trình cơ bản (code pascal và c++). o Tuyển chọn 50 bài toán đệ quy quay lui vét cạn (code pascal và c++). o Tuyển chọn 50 bài toán quy hoạch động (code pascal và c++). o Tuyển chọn 50 toán đồ thị (code pascal và c++). o Tuyển chọn 20 bài toán về cấu trúc dữ liệu đặc biệt.

Trang 1

Để có thể tham khảo tốt nhất về tài liệu này các bạn cần đọc thêm kiến thức về chương trình con, nhập xuất dữ liệu bằng tệp văn bản.

Nếu cảm thấy thú vị các bạn có thể tham khảo thêm một số tài liệu sau:

o Tuyển chọn 100 bài tập lập trình cơ bản (code pascal và c++)

o Tuyển chọn 50 bài toán đệ quy - quay lui - vét cạn (code pascal và c++)

o Tuyển chọn 50 bài toán quy hoạch động (code pascal và c++)

o Tuyển chọn 50 toán đồ thị (code pascal và c++)

Trang 2

Cấu trúc cơ bản, If Then Else Bài 1: Chữ số

Viết chương trình cho biết chữ số hàng nghìn, hàng trăm, hàng chục, hàng đơn vị của một số có 4chữ số

Dữ liệu vào: Lưu trong tệp ChuSo.inp một số nguyên dương có 4 chữ số

Dữ liệu ra: Ghi vào tệp ChuSo.out có cấu trúc như ví dụ dưới đây

Ví dụ:

tram: 2 Chu so hang chuc: 3

Trang 3

Program HCN;

Var f i , f o : t e x t ;

a , b , C V, D t : l o n g i n t ;

Begin

Trang 4

Bài 3: Tam giác

Kiểm tra ba số nguyên có thể tạo thành 3 cạnh của một tam giác hay không? Nếu có thì tính chu vi

và diện tích của tam giác đó

Dữ liệu vào: Lưu trong tệp Tamgiac.inp ba số nguyên dương (<104)

Dữ liệu ra: Ghi vào tệp Tamgiac.out với cấu trúc như sau:

+ Nếu ba số nguyên không tạo thành 3 cạnh của tam giác thì ghi “No”

+ Nếu tạo thành thì ghi ra chu vi và diện tích của tam giác

Trang 5

Bài 4: Phương trình bậc hai.

Tìm nghiệm của phương trình bậc hai ax2+bx+c=0 (a^0)

Dữ liệu vào: Lưu trong tệp Ptb2.inp 3 số thực lần lượt là 3 hệ số a,b,c

Dữ liệu ra: Ghi vào tệp Ptb2.out với cấu trúc như sau:

+ Ghi “Ptvn” nếu phương trình vô nghiệm

+ Ghi hai nghiệm x1, x2 (nếu là nghiệm kép thì ghi hai lần)

Trang 9

Yêu cầu: Viết

Trang 12

;

Trang 13

gbd,gkt,thu

Trang 14

;t

Trang 15

;

Trang 17

;readln

Trang 18

;re

Trang 19

adln(fi,gbd,

Trang 20

;

c l o s e

(

Trang 21

;tg:

=gkt

Trang 22

-;

i f

(thu

>

=

Trang 23

<

Trang 24

B e g

Trang 25

n

if gkt<=14 then

if tg<=3 then

t i e n : = t g * 4 0

0 0 0

else

t i e n : = 3

Trang 26

* 4 0 0 0 0+ ( t g -

3 ) * 2 8 0

0 0 ; i f gbd>=14 then

if tg<=3 then

t i e n : = t g * 5 0

0 0 0

else

Trang 27

t i e n : = 3

* 5 0 0 0 0+ ( t g -

3 ) * 3 5 0

0 0 ; i f ( g k t > 1

4 ) a n d (gbd<14)then

Trang 28

g b d ) * 4 0 0 0 0

+( g k t - 1 4 ) * 5 0 0 0 0 ; i f ( 1 4 - g b d ) > = 3 then

t i e n : = 3 * 4 0 0 0 0 + ( 1 4

-g b d - 3 ) * 2 8 0 0 0

+( g k t - 1 4 ) * 3 5 0 0 0 ;

i f ( 1 4 - g b d ) < 3 then

Begin

Trang 29

if (14-gbd)=1 then

t i e n : = 4 0 0 0 0 + 2 * 5 0 0 0 0

+( g k t - 1 4 -

Trang 30

( g k t 1 4

-1 ) * 3 5 0 0 0 ;

E n d

;i

f(t

Trang 31

=7)or(thu

Trang 32

=8)thentie

Trang 33

=tg

*60000

;

Trang 34

a s s i g n

(fo,'

Trang 35

karaoke.out'

Trang 39

+ 5 <

Tbm

< 6 5 :xếploại

“Trung

Trang 40

+ Tbm

< 5 :xếploại

“Yeu”

Yêu cầu: Cho

Trang 45

t e x t ;Tbm:

Trang 51

i f ( T b

Trang 52

elseif(Tbm

Trang 53

=6.5)then

Trang 54

='Kh

Trang 55

a'elseif(T

Trang 56

>

=5)then

Trang 57

='Tr

Trang 58

ungBinh'els

Trang 59

='

Trang 60

;

a s s i g n

Trang 61

’XepLoai

Trang 62

’)

;

r e w r

Trang 63

i t e

(fo)

;wri

Trang 64

te(fo,Xeploa

Trang 65

;

c l o s e

(fo

Trang 67

tiền điện tiêu

dùng như sau:

+ 100

Kw đầugiá1000/1kw

Trang 68

+ 100

Kw tiếttheo giá2000/1kw+ Các

Kw tiếp

Trang 69

theo giá3000/1kw

Trang 72

Dữ liệu ra:

Ghi vào tệpTienDien.out

số tiền phải trảtrong tháng

Ví dụ :Ti e n D i e n i n p Ti e n Di e n o u t

Trang 86

f i , f o : t e x t ;

a , b, S o

D i e

n , T

i e n:

Trang 93

n >

2

0 0 )then

0 0*2

Trang 94

0

0 0+( S o

l s e

i f (

Trang 96

0 0+( S o

Trang 98

o u

t ' ) ;

rew rite

( f o) ;

Trang 108

Dung,Cuong:i

Trang 109

;KetQ

Trang 110

ua:string

Trang 114

d ( f

i , H

u n g, D u

n g,

C u

o n g) ;

clos e( f i

) ;

Trang 115

i f(Hung

=Dun

g )a

Trang 116

d (Hung

=Cuon

g )

Trang 117

t he

n K

e tQu

a :

= 'Ho

a '

Trang 118

;

i f(Hung

<

>

Dun

Trang 119

g )an

d (Hung

<

>

Cu

Trang 120

g )

t he

n K

e tQu

a :

= '

Trang 121

g '

;

i f(Dung

<

Trang 122

Hun

g )an

d (Dung

Trang 123

>

Cuon

g )

t he

n K

e t

Trang 124

a :

= 'Dun

g '

;

i f(C

Trang 125

<

>

Hun

g )an

Trang 126

d (Cuong

<

>

Dun

g )

Trang 127

t he

n K

e tQu

a :

= 'Cuo

Trang 128

g '

;

as si g n(

f o, ’T

r oC

Trang 129

o i o

u t

’ )

;

re w ri te

( f

o )

Trang 130

; w

r i

t e( f

o ,K

e tQu

a )

;

Trang 131

cl os e(

f o) ;

Trang 132

End Cấu trúc lặp Bài 1 Số nguyên tố

Kiểm tra một số có phải là số nguyên tố hay không?

Dữ liệu vào: Lưu trong tệp SoNguyenTo.inp một số nguyên dương duy nhất (<1014)

Dữ liệu ra: Ghi vào tệp SoNguyenTo.out giá trị Yes hoặc No

Bài 2: Đảo ngược số

Viết chương trình đảo ngược một số nguyên dương

Dữ liệu vào: Lưu trong tệp DaoNguocSo.inp một số nguyên dương (<1018)

Trang 133

Dữ liệu ra: Ghi vào tệp DaoNguocSo.out số đảo ngược

Bài 3: Đổi tiền

Cho một lượng tiền cần đổi và 3 mệnh giá tiền khác nhau Hãy cho biết có bao nhiêu cách đổi Dữ liệu vào: Lưu trong tệp DoiTien.inp có cấu trúc như sau:

+ Dòng thứ nhất lưu số tiền cần đổi (<106)

+ Dòng thứ hai lưu 3 mệnh giá tiền

Dữ liệu ra: Ghi vào tệp DoiTien.out số cách đổi

Trang 134

Dữ liệu vào: Lưu trong tệp Taohinh.inp một số nguyên dương cho biết chiều cao của hình (<104).

Dữ liệu ra: Ghi vào tệp TaoHinh.out hình với chiều cao từ input

Trang 135

Dữ liệu vào: Lưu trong tệp Taohinh.inp một số nguyên dương cho biết chiều cao của hình (<104) Dữ liệu ra: Ghi vào tệp TaoHinh.out hình với chiều cao từ input.

Bài 6: Ước chung lớn nhất

Tìm ước chung lớn nhất của hai số nguyên dương

Dữ liệu vào: Lưu trong tệp Ucln.inp hai số nguyên dương

Dữ liệu ra: Ghi vào tệp Ucln.out ước chung lớn nhất

UCLN(a,b)={

()BCNN(a,b) = (a*b)/UCLN(a,b) -> Cách tính bội chung nhỏ nhất

Chương trình:

Trang 136

Bài 7: Lũy thừa

Cho số tự nhiên n (0 < n < 230), n luôn được phân tích dưới dạng n= 5 m p trong đó p là số nguyên

dương và m là số tự nhiên lớn hơn hoặc bằng 0

Ví dụ: Với số tự nhiên n = 500 thì n= 53.4, tức là m = 3, p = 4

Yêu cầu: Tìm tất cả các cặp giá trị m,p thỏa n=5mp

Dữ liệu vào: Lưu trong tệp LuyThua.inp với một số tự nhiên thể hiện giá trị n

Dữ liệu ra: Ghi vào tệp LuyThua.out mỗi dòng ghi một cặp giá trị m,p theo thứ tự tăng dần của p Ví dụ:

Trang 137

Bài 8: Giai thừa

Tính tổng sau: 1+1.2+1.2.3+1.2.3.4+ +1.2.3 (n-l).n Dữ liệu vào: Lưu trong

Trang 138

; rewrite( f o ) ; w r i t e ( f o , t o n g ) ;

close( f o );

End

Trang 139

Bài 1: Max-Min

Cho dãy số gồm n số nguyên Hãy cho biết độ chênh lệnh giữa phần tử Max và phần tử Min

Dữ liệu vào: Lưu trong tệp MaxMin.inp có cấu trúc như sau:

+ Dòng thứ nhất lưu số nguyên n (n < 107) cho biết số phần tử trong dãy

+ Dòng thứ hai lưu n số nguyên mỗi số cách nhau ít nhất một khoảng trắng

Dữ liệu ra: Ghi vào tệp MaxMin.out độ chênh lệnh giữa phần tử Max và Min

Dữ liệu vào: Lưu trong tệp ChanLe.inp có cấu trúc như sau:

+ Dòng thứ nhất lưu số nguyên n (n < 107) cho biết số phần tử trong dãy

+ Dòng thứ hai lưu n số nguyên mỗi số cách nhau ít nhất một khoảng trắng

Dữ liệu ra: Ghi vào tệp ChanLe.out độ chênh lệnh giữa số lượng chẵn và lẻ.

Trang 140

Cho dãy số gồm n số nguyên Hãy cho biết tổng của các số nguyên tố trong dãy.

Dữ liệu vào: Lưu trong tệp TongNguyenTo.inp có cấu trúc như sau:

+ Dòng thứ nhất lưu số nguyên n (n < 107) cho biết số phần tử trong dãy

+ Dòng thứ hai lưu n số nguyên mỗi số cách nhau ít nhất một khoảng trắng

Dữ liệu ra: Ghi vào tệp TongNguyenTo.out tổng của các số nguyên tố

Trang 142

Cho dãy số gồm n số nguyên Hãy sắp xếp dãy số theo thứ tự tăng dần.

Dữ liệu vào: Lưu trong tệp SapXep.inp có cấu trúc như sau:

+ Dòng thứ nhất lưu số nguyên n (n < 107) cho biết số phần tử trong dãy

+ Dòng thứ hai lưu n số nguyên mỗi số cách nhau ít nhất một khoảng trắng Dữ liệu ra: Ghi vào tệp SapXep.out dãy đã được sắp tăng

Trang 143

Bài 6: Dãy con dương

Cho dãy số gồm n số nguyên Hãy cho biết số lượng các số dương liên tiếp nhiều

nhất Dữ liệu vào: Lưu trong tệp DayconDuong.inp có cấu trúc như sau:

+ Dòng thứ nhất lưu số nguyên n (n < 107) cho biết số phần tử trong dãy

+ Dòng thứ hai lưu n số nguyên mỗi số cách nhau ít nhất một khoảng trắng

Dữ liệu ra: Ghi vào tệp DayConDuong.out số lượng các số dương liên tiếp nhiều

Trang 144

assign( f o , ’ D a y C o n Du o n g o u t ’ ) ;

rewrite( f o ); w r i t e ( f o , m a x ) ;

close( f o );

End.

Bài 7: Dãy con chẵn

Cho dãy số gồm n số nguyên Hãy cho biết số lượng các số chẵn liên tiếp nhiều nhất

Dữ liệu vào: Lưu trong tệp DayconChan.inp có cấu trúc như sau:

+ Dòng thứ nhất lưu số nguyên n (n < 107) cho biết số phần tử trong dãy

+ Dòng thứ hai lưu n số nguyên mỗi số cách nhau ít nhất một khoảng trắng

Dữ liệu ra: Ghi vào tệp DayConchan.out có cấu trúc như sau;

+ Dòng thứ nhất ghi số lượng các số chẵn liên tiếp nhiều nhất

+ Dòng thứ 2 ghi dãy con chẵn đó (nếu có nhiều dãy bằng nhau thì chỉ ghi dãy đầu tiên).Ví dụ:

Trang 145

Bài 8: Dãy con đổi dấu

Cho dãy số gồm n số nguyên Hãy cho biết dãy số hạng đổi dấu nhiều nhất có bao nhiêu phần

tử Dữ liệu vào: Lưu trong tệp DayDoiDau.inp có cấu trúc như sau:

+ Dòng thứ nhất lưu số nguyên n (n < 107) cho biết số phần tử trong dãy

+ Dòng thứ hai lưu n số nguyên mỗi số cách nhau ít nhất một khoảng trắng

Dữ liệu ra: Ghi vào tệp DayDoiDau.out số lượng phần tử của dãy đổi dấu nhiều nhất.

Dữ liệu vào: Lưu trong tệp TongX.inp có cấu trúc như sau:

+ Dòng thứ nhất lưu hai số nguyên n (n < 107) và X

+ Dòng thứ hai lưu n số nguyên mỗi số cách nhau ít nhất một khoảng trắng

Trang 147

Bài 1: Max Min

Tìm phần tử đạt giá trị Max, và phần tử đạt giá trị Min trong ma trận các số nguyên có kích thước mxn

Dữ liệu vào: Lưu trong tệp MaxMinX.inp có cấu trúc như sau:

+ Dòng đầu tiên lưu hai số nguyên dương (m,n < 104)

+ m dòng tiếp theo mỗi dòng lưu n số nguyên Mỗi số cách nhau ít nhất một khoảng

trắng Dữ liệu ra: Ghi vào tệp MaxMin.out có cấu trúc như sau:

+ Dòng thứ nhất ghi phần tử đạt giá trị Max và vị trí của nó

+ Dòng thứ hai ghi phần tử đạt giá trị Min và vị trí của nó

+ Nếu có nhiều phần tử đạt giá trị Max hoặc Min thì phần tử Max hoặc Min là phần tử đầu tiên đạt giá trị Max hoặc Min

Trang 148

Dữ liệu vào: Lưu trong tệp NguyenTo.inp có cấu trúc như sau:

+ Dòng đầu tiên lưu hai số nguyên dương (m,n < 104)

+ m dòng tiếp theo mỗi dòng lưu n số nguyên Mỗi số cách nhau ít nhất một khoảng trắng Dữ liệu ra: Ghi vào tệp NguyenTo.out số lượng số nguyên tố thỏa điều kiện Ví dụ:

Trang 149

Cho mảng A(n x m) các số nguyên Phần tử Ai,j với ( 1 ( 1 < i < n , 1 < j < m ) được

gọi là phần tử cực trị nếu nó nhỏ hơn hoặc lớn hơn tất cả các phần tử lân cận với nó

Dữ liệu vào: Lưu trong tệp CucTri.inp với cấu trúc:

+ Dòng đầu tiên lưu hai số nguyên dương cách nhau một khoảng trắng thể hiện giá trị

Program C u c Tr i ;

Var A : a r r a y [ 1 1 0 0 , 1 1 0 0 ] o f i n t e g e r ;

f i , f o : t e x t ;

n , m , t , p : i n t e g e r ;

Trang 151

Dữ liệu vào: Lưu trong tệp SapXep.inp có cấu trúc như sau:

+ Dòng đầu tiên lưu hai số nguyên dương (m,n < 104)

+ m dòng tiếp theo mỗi dòng lưu n số nguyên Mỗi số cách nhau ít nhất một khoảng trắng

Dữ liệu ra: Ghi vào tệp SapXep.out ma trận sau khi được sắp xếp.

Bước 1: Nhập ma trận từ file SapXep.inp

Bước 2: Chuyển ma trận thành mảng 1 chiều

Trang 152

Bước 4: Chuyển mảng 1 chiều thành 2 chiều theo đúng vị trí của từng phần tử

Bước 5: Ghi ma trận đã được sắp xếp ra file SapXep.out Chương trình:

Trang 153

Dữ liệu vào: Lưu trong tệp SapXep.inp có cấu trúc như sau:

+ Dòng đầu tiên lưu hai số nguyên dương (m,n < 104)

+ m dòng tiếp theo mỗi dòng lưu n số nguyên Mỗi số cách nhau ít nhất một khoảng

trắng Dữ liệu ra: Ghi vào tệp SapXep.out ma trận sau khi được sắp xếp.

Trang 156

Dữ liệu vào: Lưu trong tệp SapXep.inp có cấu trúc như sau:

+ Dòng đầu tiên lưu hai số nguyên dương (m, n < 104)

+ m dòng tiếp theo mỗi dòng lưu n số nguyên Mỗi số cách nhau ít nhất một khoảng

trắng Dữ liệu ra: Ghi vào tệp SapXep.out ma trận sau khi được sắp xếp.

Bước 1: Nhập ma trận từ file SapXep.inp.

Bước 2: Chuyển ma trận thành mảng 1 chiều.

Bước 3: Sắp xếp mảng 1 chiều.

Bước 4: Chuyển mảng 1 chiều thành 2 chiều theo đúng vị trí của từng phần tử Bước 5: Ghi ma trận đã được sắp xếp ra file SapXep.out.

Chú ý: Đối với ma trận vuông cấp (nxn) thì thuật toán chuyển từ mảng 1 chiều sang 2 chiều

đơn giản hơn

Trang 158

A s s i gn ( f o , ’ S a p X e p o u t ’ ); r e w r i t e ( f o ) ;

f o r i : = 1 t o m d o

Begin f o r j : = 1 t o n d o w r i t e ( f o , A [ i , j ] : 3 ) ; w r i t e l n ( f o ) ; End;

Trang 159

Bài 1: Đối Xứng

Xâu đối xứng là xâu bằng chính xâu đảo của nó Hãy kiểm tra xem một xâu có phải là xâu đối xứng hay không?

Dữ liệu vào: Lưu trong tệp DoiXung.inp một xâu ký tự

Dữ liệu ra: Ghi vào tệp DoiXung.out “Yes” nếu là xâu đối xứng, “No” nếu là xâu không đối xứng

Trang 160

sửa lỗi một xâu văn bản bị lỗi khoảng trắng cho trước.

Dữ liệu vào: Lưu trong tệp SuaLoi.inp một xâu ký tự bị lỗi khoảng trắng

Dữ liệu ra: Ghi vào tệp SuaLoi.out xâu đã được sửa hết lỗi

Viết chương trình liệt kê tất cả các từ trong một xâu văn bản

Dữ liệu vào: Lưu trong tệp LietKe.inp một xâu ký tự bị lỗi khoảng trắng

Dữ liệu ra: Ghi vào tệp LietKe.out tất cả từ trong xâu văn bản đã cho, mỗi từ nằm trên một dòng

Trang 161

L ư u ý : X â u v ă n b ả n trong input của trương trình trên là không có lỗi khoảng trắng, không códấu câu Nếu input có lỗi khoảng trắng thì gọi thủ tục sửa lỗi (bài 2) trước khi liệt kê các từ Nếuxâu văn bản có các dấu câu thì chương trình sửa lại như sau:

Trang 162

Dữ liệu vào: Lưu trong tệp LietKe.inp một xâu ký tự bị lỗi khoảng trắng.

Dữ liệu ra: Ghi vào tệp LietKe.out tất cả các chữ cái và số lượng của nó theo thứ tự từ điển Có cấutrúc như ví dụ sau:

Trang 163

đó theo thứ tự xuất hiện trong dãy.

Dữ liệu vào: Lưu trong tệp Palindrom.inp một dãy số (<108 phần tử) nguyên dương Mỗi số(<108) cách nhau ít nhất một khoảng trắng

Dữ liệu ra: Ghi vào tệp Palindrom.out có cấu trúc như sau: Mỗi dòng ghi một số palindrom theothứ tự xuất hiện trong dãy

Ví dụ:

P a l i n d r o m i n p P a l i n d r o m o u t

1 2 1 1 1 2 3 4 2 2 2 3 5 1 2 1

Trang 164

2 2Chương trình:

Trang 165

B à i 1 : Fibonacci.

Dãy Fibonacci là dãy vô hạn các số tự nhiên bắt đầu bằng hai phần tử 0 và 1, các phần tử sau đó

được thiết lập theo quy tắc mỗi phần tử luôn bằng tổng hai phần tử trước nó Công thức truy hồi

của dãy Fibonacci là:

F(n)={

( ) ( )Yêu cầu: Tìm số Fibonacci thứ n

Dữ liệu vào: Lưu trong tệp Fibo.inp một số nguyên dương n (n < 108)

Dữ liệu ra: Ghi vào tệp Fibo.out số Fibonacci thứ n

Số hoàn hảo được định nghĩa như sau:

+ 1 không phải là số hoàn hảo

+ Có tổng các ước nhỏ hơn nó bằng chính nó

Yêu cầu: Hãy liệt kê tất cả các số hoàn hảo nhỏ hơn một số nguyên cho trước

Dữ liệu vào: Lưu trong tệp SoHH.inp một số nguyên dương n (n < 104)

Dữ liệu ra: Ghi vào tệp SoHH.out tất cả cá số hoàn hảo nhỏ hơn n

Trang 166

S o H H i n p S o H H o u t

Trang 167

2 8

4 9 68128Chương trình:

B à i 3 : Thừa số nguyên tố

Hãy phân tích một số ra thành thừa số nguyên tố

Dữ liệu vào: Lưu trong tệp TSNT.inp một số nguyên dương n (n < 106)

Dữ liệu ra: Ghi vào tệp TSNT.out tích các thừa số nguyên tố

Trang 168

Dữ liệu vào: Lưu trong tệp Xoa.inp có cấu trúc như sau:

+ Dòng thứ nhất lưu số nguyên n (n < 107) cho biết số phần tử trong dãy

+ Dòng thứ hai lưu n số nguyên mỗi số cách nhau ít nhất một khoảng trắng

Dữ liệu ra: Ghi vào tệp Xoa.out tổng của các số nguyên tố

assign( f o , ’ X o a o u t ’ ) ; rewrite( f o ) ;

f o r i : = 1 t o n d o w r i t e ( f o , A [ i ] , ’ ’ );

close( f o ) ;

Trang 169

L ư u ý : Thuật toán trên có độ phức tạp O(n3) Ngoài ra còn có thuật toán độ phức tạp O(n) gợi ý như dưới đây:

+ Sử dụng biến kiểu cấu trúc có 2 thành phần, một thành phần lưu giá trị, một thành phần lưu vị trí dầutiên

.+ Sử dụng mảng để lưu số lần xuất hiện của mỗi phần tử

+ Sắp xếp lại theo vị trí xuất hiện (sử dụng thuật toán sắp xếp có độ phức tạp O(n)) +

Xuất ra mảng được sắp xếp theo vị trí xuất hiện

Bài 5: Tổng m số

Cho số tự nhiên n và một số nguyên dương m Hãy tính tổng m số tận cùng của n

Dữ liệu vào: Lưu trong tệp TongM.inp hai số n và m cách nhau ít nhất một khoảng trắng Dữ

liệu ra: Ghi vào tệp TongM.out tổng m số tận cùng của n

Cho dãy số gồm n số nguyên dương Hãy tìm bội chung nhỏ nhất của dãy số đó Dữ

liệu vào: Lưu trong tệp BCNN.inp có cấu trúc như sau:

+ Dòng thứ nhất lưu số nguyên n (n < 107) cho biết số phần tử trong dãy

+ Dòng thứ hai lưu n số nguyên mỗi số cách nhau ít nhất một khoảng trắng Dữ liệu ra:

Ghi vào tệp BCNN.out tổng của các số nguyên tố

Ngày đăng: 19/08/2019, 07:39

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w