Tải bản đầy đủ (.docx) (28 trang)

Tai lieu on Tin hoc tre khong chuyen THCS

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.36 MB, 28 trang )

<span class='text_page_counter'>(1)</span>TÀI LIỆU ÔN THI TIN HỌC TRẺ KHÔNG CHUYÊN Bài 1: Số hoàn thiện Một số có tổng các ước nhỏ hơn nó bằng chính nó được gọi là số hoàn thiện.VD 6 có ước nhỏ hơn nó là 1,2,3. Tổng là 1+2+3=6.Viết chương trình xét xem một số n được nhập từ bàn phím có phải là số hoàn thiện không. Bài 2: Nén chuỗi và giải nén. VD: Nhập chuỗi S= ‘AABBBDFFFFGH’ (Từ 3 kí tự trở lên mới nén) Nén: AA3BD4FGH Nhập chuỗi S=’ AA3BD4FGH’ Giải nén: AABBBDFFFFGH Bài 3: Chuỗi chia hết Nhập vào một chuỗi S bao gồm cả kí tự số và chữ. Đếm xem trong chuỗi S có bao nhiêu số chia hết cho 5 và in các số đó ra. VD: Nhập S= ‘asg35gds67gdgf345hh’ - Có 2 số chia hết cho 5 là: 35, 345 Bài 4: Số nguyên tố đối xứng: Một số nguyên n được gọi là số nguyên tố đối xứng khi thỏa mãn hai tính chất sau: - Số n là số nguyên tố - Số n là số đối xứng (số đối xứng là số khi ta đọc từ trái qua phải và từ phải qua trái là như nhau, ví dụ các số 727, 11411, 131 là các số đối xứng.) Yêu cầu : Viết chương trình nhập vào 2 số nguyên dương a, b (0<a<b<65000) a) Liệt kê ra màn hình (nếu có) các số nguyên tố đối xứng n (với a<=n<=b), các số cách nhau một khoảng trắng. b) Thông báo có bao nhiêu số nguyên tố đối xứng đã liệt kê ở câu a. VD : Nhâp a=100, b=150 - Kết quả câu a : 101 131 - Kết quả câu b : Co 2 so nguyen to doi xung Bài 5: Đổi tiền Có 4 loại tiền mệnh giá 5 đồng, 10 đồng, 20 đồng và 50 đồng với số lượng mỗi tờ tiền là có giới hạn. Một người cần đổi M đồng thành các tờ tiền với mệnh giá như đã cho. Yêu cầu: Viết chương trình nhập vào số tiền M cần đổi (0<M<100000000). Nếu có thể đổi được hết M đồng thành các tờ tiền theo mệnh giá đã cho, thì kết quả là tổng các tờ tiền đổi được ít nhất. Nếu không đổi được thì ghi kết quả là -1 Dữ liệu vào: Tập tin văn bản CHANGE.INP gồm 1 dòng chứa 5 số nguyên mỗi số cách nhau một khoảng trắng, trong đó 4 số đầu tiên theo thứ tự là số lượng tờ 5 đồng, 10 đồng, 20 đồng và 50 đồng; số thứ 5 là tổng số tiền M (tính bằng đồng) mà người đó cần đổi. Dữ liệu ra: Tập tin văn bản CHANGE.OUT gồm 1 số: - Nếu không đổi được thì ghi -1 - Nếu đổi được thì ghi tổng số tờ ít nhất. VD: CHANGE.INP CHANGE.OUT 2 2 2 2 35 3 3 2 0 4 535 -1 Bài 6: Chuỗi và số Một chuỗi S gồm các kí tự số và chữ. Đếm xem trong chuỗi S có bao nhiêu số và in ra số lớn nhất sau khi đã đảo ngược số trong chuỗi. In ra các phần tử có dạng xy+7 nếu có và in ra giá trị của x và y. (x,y>1) VD: S=’sds15sfg120hdg1024hh’ - Có 3 số - Số lớn nhất là 4201 - Các phần tử có dạng xy+7 là:.

<span class='text_page_counter'>(2)</span> 15 = 2^3+7 Bài 7:Minesweeper Dữ liệu vào: Dữ liệu ra: Min.inp Min.out *... *100 …. 2210 .*.. 1*10 …. 1110 Bài 8: Điền số Cho một mảng 2 chiều kích thước n*n. Hãy thực hiện điền các số nguyên dương vào bảng theo quy luật sau: -Ô(1;1)(Góc trái trên) bằng 1. -Thứ tự điền theo dòng từ trên xuống và theo cột từ trái sang phải. -Giá trị diền vào ô tại dòng i, cột j phải là số nhỏ nhất chưa xuất hiện trong dòng i và cột j VD : với n=5 12345 2143 Số nhỏ nhất chưa xuất hiện trên dòng 2 và cột 4 là 3 KQ 12345 21436 34127 43218 56781 Bài 9: Đánh mã số Người ta dùng các chữ cái từ A đến Z để đánh mã số. Theo quy tắc sau: Thứ tự mã chữ 1=>A 2=>B 26=>Z 27=>AA 52=>AZ 53=>BB 703=>AAA 704=>AAB Ta được cho biết số thứ tự của mã chữ hãy xác định mã chữ tương ứng. Hoặc ta được cho biết mã hãy xác định thứ tự của mã chữ đó. BÀI 10: Quay xâu ký tự Cho S là một xâu gồm không quá 80 ký tự, mỗi ký tự là một chữ cái trong bảng chữ cái tiếng anh A-Z,a-z. Ta gọi phép dịch chuyển S đi 1 ký tự là việc chyển ký tự đầu tiên của S xuống vị trí cuối cùng. Ký hiệu T(S) là xâu thu đc sau phép dịch chuyển S đi một ký tự Cho trước xâu S và số nguyên dương N<10100 vd: TRANSTR.INP TRANSTR.OUT 3 puterCom Computer Bài 11: Số nguyên tố ghép: Xét dãy số A các sô nguyên tố: 2, 3, 5, 7, 11, 13, 17, 19,… Và dãy B gồm các số thu được từ dãy A bằng cách ghép 2 số liên tiếp trong A: 23, 57, 1113, 1719,… Trong dãy B có những phần tử là số nguyên tố. Chẳng hạn: 23, 3137, 8389, 157163,….

<span class='text_page_counter'>(3)</span> Các số nguyên tố trong dãy B gọi là số nguyên tố ghép. Yêu cầu: Cho trước số nguyên K<=500, hãy tìm số nguyên tố ghép thứ K. Input Output 2 3137 Bài 12: Dãy con lớn nhất: Cho một mảng số nguyên gồm n phần tử. Tìm dãy con gồm m phần tử (m<=n) sao cho dãy con này có tổng lớn nhất. (Dãy con là dãy các phần tử liên tiếp nhau trong mảng). Yêu cầu: Dữ liều vào: gồm 3 dòng - Dòng đầu tiên chứa số phần tử n của mảng - Dòng tiếp theo chứa các phần tử của dãy. - Dòng thứ 3 chứa số phần tử của dãy con Dữ liệu ra: gồm một dòng duy nhất chứa dãy con có tổng lớn nhất. VD: Input Output 8 879 43528796 3 Bài 13: Xóa kí tự trùng Viết chương trình nhập vào một xâu và xóa hết các kí tự liên tiếp giống nhau trong xâu chỉ chừa lại một. Input Output cccccaaannnoo cano xxxxeeddaappp xedap yeseeeyysss yeseys Bài 14: Tổng 2 số nguyên tố: Trong một bức thư mà Christian Goldbach gửi cho Euler, ông đã đề cập đến phỏng đoán của mình: Mọi số tự nhiên chẵn lớn hơn 2 đều là tổng của 2 số nguyên tố. Hãy lập chương trình để kiểm chứng phỏng đoán của Goldbach. Yêu cầu: Dữ liệu vào từ file GB.INP gồm nhiều dòng, dòng đầu là số test (<10), các dòng tiếp theo mỗi dòng ghi một số tự nhiên chắn lớn hơn 2 (<32000). Dữ liệu ra là file GB.OUT các dòng (mỗi dòng ứng với 1 test) – mỗi dòng gồm hai số nguyên tố cách nhau ít nhất một dấu cách có tổng bằng số đã cho, nếu không tìm được thì ghi là “Khong” VD: GB.INT GB.OUT 3 8 35 12 57 6 33 Bài 15: Định lí 6174 Dãy 6174 được tạo ra theo cách sau: Số hạng đầu tiên của dãy là số nguyên dương n1 gồm 4 chữ số (Bốn chữ số của số hạng đầu tiên này không đồng thời bằng nhau). Hai số mới (a1 và b1) được tạo thành từ số hạng đầu tiên của dãy. Số thứ nhất a1 có được bằng cách sắp xếp các chứ số của n1 theo thứ tự giảm dần và số thứ hai có được bằng cách sắp xếp các chữ số của n1 theo thứ tự tăng dần. Số thứ hai n2 của dãy là hiệu a1-b1. Tiếp tục, hai số a2 và b2 được tạo thành từ n2 tương tự như a1 và b1 và số thứ ba n3 của dãy 6714 là hiệu a2b2, và cứ thế tiếp tục. Dãy số kết thúc khi các số hạng của dãy bắt đầu lặp lại (ngĩa là các phần tử của dãy đôi một khác nhau). Chữ số 0 ở đầu số (vị trí thứ nhất tính từ bên trái) vẫn có nghĩa..

<span class='text_page_counter'>(4)</span> Định lí 6174 phát biểu rằng số hạng cuối của dãy số xây dựng như trên luôn là số 6174. Chẳng hạn, xét dãy mà số hạng đầu tiên (n1) là 7815. Ta có : 8751 – 1578 = 7173 (n2) 7731 – 1377 = 6354 (n3) 6543 – 3456 = 3087 (n4) 8730 – 0378 = 8352 (n5) 8532 – 2358 = 6174 (n6) Yêu cầu : Cho trước số hạng đầu tiên của dãy 6174. Cho biết chỉ số của số hạng cuối (là số hạng 6174) của dãy. Dữ liệu vào : tập tin văn bản DL6174.INP, gồm một dòng là số nguyên dương duy nhất là số có 4 chữ số là số hạng đầu tiên của dãy 6174. Dữ liệu ra : Tập tin văn bản DL6174.OUT, gồm một dòng số nguyên dương duy nhất là số hiệu của số hạng cuối của dãy số 6174 mà số hạng đầu cho trong tập tin dữ liệu. VD : DL6174.INP DL6174.OUT 7815 6 Bài 16: Trò chơi vòng tròn Có m người xếp thành vòng tròn để tham gia trò chơi (M>=6). Trò chơi như sau: Đầu tiên, người thứ nhất đếm 1, người thứ 2 đếm 2, người thứ 3 đếm 3, người thứ tư lại đếm 1... những người đếm 3 sẽ bị loại khỏi vòng trò. Lập chương trình tính xem với m nhập vào từ bàn phím, thì người cuối cùng sẽ là người thứ bao nhiêu?. TC.INT TC.OUT 8 7 Bài 17: Phần tử yên ngựa Cho bảng A kích thước MxN. Phần tử Aij được gọi là phần tử yên ngựa nếu nó là phần tử nhỏ nhất trong hàng của nó đồng thời là phần tử lớn nhất trong cột của nó. Ví dụ trong bảng số sau đây: 15 3 9 55 4 6 76 1 2 thì phần tử A22 chính là phần tử yên ngựa. Bạn hãy lập chương trình nhập từ bàn phím một bảng số kích thước MxN và kiểm tra xem nó có phần tử yên ngựa hay không? Bài 18: -Biểu diễn phân số Một phân số luôn luôn có thể được viết dưới số thập phân hữu hạn hoặc vô hạn tuần hoàn. Ví dụ: 23/5 = 4.6 3/8 = 0.375 1/3 = 0.(3) 45/56 = 0.803(571428) .... Trong các ví dụ trên thì các chữ số đặt trong dấu ngoặc chỉ phần tuần hoàn của số thập phân. Nhiệm vụ của bạn là viết một chương trình nhập tử số (N) và nhập mẫu số (D), sau đó đưa ra kết quả là dạng thập phân của phân số N/D. Ví dụ chạy chương trình:.

<span class='text_page_counter'>(5)</span> Nhap N, D:1 7 1/7 = 0.(142857) Bài 19 - Số siêu nguyên tố Số siêu nguyên tố là số nguyên tố mà khi bỏ một số tuỳ ý các chữ số bên phải của nó thì phần còn lại vẫn tạo thành một số nguyên tố. Ví dụ 7331 là một số siêu nguyên tố có 4 chữ số vì 733, 73, 7 cũng là các số nguyên tố. Nhiệm vụ của bạn là viết chương trình nhập dữ liệu vào là một số nguyên N (0< N <10) và đưa ra kết quả là một số siêu nguyên tố có N chữ số cùng số lượng của chúng. Ví dụ khi chạy chương trình: Nhap so N:. 4. Cac so sieu nguyen to có 4 chu so la: 2333 3739 3793 3797 5939 7193. 2339 7331. 2393 7333. 2399 7393. 2939. 3119. 3137. 3733. Tat ca co 16 so Bài 20 - Tam giác số Hình sau mô tả một tam giác số có số hàng N=5: 7 3 8 2 4. 8 1. 7 5. 0 4. 2. 4 6. 5. Đi từ đỉnh (số 7) đến đáy tam giác bằng một đường gấp khúc, mỗi bước chỉ được đi từ số ở hàng trên xuống một trong hai số đứng kề bên phải hay bên trái ở hàng dưới, và cộng các số trên đường đi lại ta được một tổng. Ví dụ: đường đi 7 8 1 4 6 có tổng là S=26, đường đi 7 3 1 7 5 có tổng là S=23 Trong hình trên, tổng Smax=30 theo đường đi 7 3 8 7 5 là tổng lớn nhất trong tất cả các tổng. Nhiệm vụ của bạn và viết chương trình nhận dữ liệu vào là một tam giác số chứa trong text file INPUT.TXT và đưa ra kết quả là giá trị của tổng Smax trên màn hình. File INPUT.TXT có dạng như sau: Dòng thứ 1: có duy nhất 1 số N là số hàng của tam giác số (0<N<100). N dòng tiếp theo, từ dòng thứ 2 đến dòng thứ N+1: dòng thứ i có (i-1) số cách nhau bởi dấu trống (space). Ví dụ: với nội dung của file INPUT.TXT là 5 7 38 810 2744 45265 thì kết quả chạy chương trình sẽ là: Smax=30..

<span class='text_page_counter'>(6)</span> Bài 21 - Đảo chữ cái Bạn phải viết chương trình đưa ra tất cả các từ có thể có phát sinh từ một tập các chữ cái. Ví dụ: Cho từ “abc”, chương trình của bạn phải đưa ra được các từ " abc", "acb", "bac", "bca", "cab" và "cba" (bằng cách khảo sát tất cả các trường hợp khác nhau của tổ hợp ba chữ cái đã cho). Bài 22 - Xoá số trên vòng tròn Các số từ 1 đến 2000 được xếp theo thứ tự tăng dần trên một đường tròn theo chiều kim đồng hồ. Bắt đầu từ số 1, chuyển động theo chiều kim đồng hồ, cứ bước qua một số lại xoá đi một số. Công việc đó tiếp diễn cho đến khi trên vòng tròn còn lại đúng một số. Lập chương trình tính và in ra số đó. Bài 23 - Bài toán đổi màu bi Trên bàn có N1 hòn bi xanh, N2 hòn bi đỏ và N3 hòn bi vàng. Luật chơi như sau: Nếu 2 hòn bi khác màu nhau chạm nhau thì chúng sẽ cùng biến thành màu thứ 3 (ví dụ: xanh, vàng --> đỏ, đỏ). Tìm thuật toán và lập chương trình cho biết rằng có thể biến tất cả các hòn bi đó thành một màu đỏ có được không? Bài 24 - Thay thế từ Hai file INPUT1.TXT và INPUT2.TXT được cho như sau: File INPUT1.TXT chứa một đoạn văn bản bất kì. File INPUT2.TXT chứa không quá 50 dòng, mỗi dòng gồm hai từ: từ đầu là từ đích và từ sau là từ nguồn. Hãy tìm trong file INPUT1.TXT tất cả các từ là từ đích và thay thế chúng bằng các từ nguồn tương ứng. Kết quả ghi vào file KQ.OUT (sẽ là một đoạn văn bản tương tự như trong file INPUT1.TXT nhưng đã được thay thế từ đích bởi từ nguồn). Sample INPUT  File INPUT1.TXT chứa đoạn văn bản sau: Nam moi sap den roi, ban co zui khong? Chuc cac ban don mot cai Tet that vui ve va hanh phuc. Chuc ban luon hoc gioi!  File INPUT2.TXT chứa các dòng sau: ban em zui vui Sample OUTPUT  File KQ.OUT sẽ chứa đoạn văn bản sau: Nam moi sap den roi, em co vui khong? Chuc cac em don mot cai Tet that vui ve va hanh phuc. Chuc em luon hoc gioi! Bài 25 - Tổng các số tự nhiên liên tiếp Cho trước số tự nhiên n. Viết chương trình cho biết n có thể biểu diễn thành tổng của hai hoặc nhiều số tự nhiên liên tiếp hay không? Trong trường hợp có, hãy thể hiện tất cả các cách có thể có. Bài 26 - Thực hiện phép nhân Bạn hãy lập chương trình nhập 2 số nguyên dương a và b. Sau đó thực hiện phép nhân (a x b) như cách nhân bằng tay thông thường. Ví dụ:.

<span class='text_page_counter'>(7)</span> Bài 27: Tổng và tích Cho số tự nhiên n>1 và n<18 với tổng S=1/2+2/3+3/4+…+(n-1)/n và tích P = 1/2 x 2/3 x 3/4 x…x (n-1)/n Yêu cầu: Viết chương trình nhập vào số tự nhiên n>1 và n<18 a. Hiện ra màn hình tổng S và tích P với 4 chữ số thập phân. b. Hiện ra màn hình tổng S và tích P dưới dạng phân số. Ví dụ: Nhập n=3 a. S=1,1667 P=0,3333 b. S=7/6 P=1/3 Bài 28: Máy đổi mãu tự lạ kì Có một máy đổi mẫu tự kì lạ như sau: Khi bỏ vào máy đúng một mẫu tự a và đúng một mẫu tự b thì máy cho ra 2 mẫu tự c, Bỏ vào 1 mẫu tự a và c thì máy cho ra 2 mẫu tự b, bỏ vào 1 mẫu tự c và b thì máy cho ra 2 mẫu tự a. Cho trước m mẫu tự a, n mẫu tự b, k mẫu tự c, hãy đổi ra nhiều mẫu tự c nhất. Yêu cầu: Viết chương trình nhập vào các số tự nhiên m, n, k là số mẫu tự a, b, c tương ứng. Hiện ra màn hình số mẫu tự c nhiều nhất có thể đổi được. Ví dụ: Nhập m=2, n=5, k=1 Số mẫu tự c đổi được nhiều nhất là 8 Giải thích: - Lấy 1b và 1c bỏ vào máy  2a. Khi đó ta có 4a, 4b, 0c - Thực hiện 4 lần bỏ vào máy mỗi lần 1a và 1b ta được 8c Bài 29 : Chuỗi và khoảng trắng Cho chuỗi S chỉ có các chữ số 1, 2, 3 và đúng một khoảng trắng. Người ta biến đổi chuỗi S bằng cách lấy một chữ số đổi về khoảng trắng tại chữ số bị lấy đi thành khoảng trắng, tiếp tục đổi cho đến khi chuỗi s có dạng các chữ số 1 ở đầu chuỗi, đến các chữ số 2, đến chữ số 3 và khoảng trắng ở cuối chuỗi ta gọi là chuỗi đích. Yêu cầu : Nhập vào chuỗi S gồm các chữ số 1, 2, 3 và đúng một khoảng trắng. Hãy nêu ra lần lượt các vị trí lấy chữ số đổi về khaongr trắng với số lần lấy chữ ít nhất để được chuỗi đích. Ví dụ : Nhập S=123123 1 (khoảng trắng ở vị trí thứ 7 trong chuỗi S) Lần lượt các vị trí lấy chữ số đổi về khoảng trắng là: 3 4 2 8 Giải thích: Lần thứ nhất lấy chữ số ở vị trí thứ 3 đổi về khoảng trắng, ta có S= 12 12331 Lần thứ hai lấy chữ số ở vị trí thứ 4 đổi về khoảng trắng, ta có S= 121 2331 Lần thứ ba lấy chữ số ở vị trí thứ 2 đổi về khoảng trắng, ta có S= 1 122331 Lần thứ tư lấy chữ số ở vị trí thứ 3 đổi về khoảng trắng, ta có S= 1112233 Bài 30: Ước số Cho số tự nhiên n (0<n<65535) Yêu cầu: Viết chương trình nhập vào số tự nhiên n từ bàn phím, và thực hiện các yêu cầu sau: a. Tính tổng các ước số của n (không kể n) b. Tìm số tự nhiên m (0<m<=n) sao cho tổng các ước số của m (không kể m) là lớn nhất, in số tự nhiên m và tổng các ước số của m ra màn hình..

<span class='text_page_counter'>(8)</span> Bài 31: Xóa chứ số trong chuỗi Khi viết liên tiếp các số tự nhiên từ 1 đến n ta được một xâu S biểu diễn một số tự nhiên. Ví dụ: với n=15 ta được S=’123456789101112131415’ Yêu cầu: a. Tính tổng các chữ số của dãy S được tạo ra bởi n theo quy cách trên, với n là số tự nhiên được nhập từ bàn phím (0<n<120) b. Nhập vào số nguyên k (0<k<độ dài xâu S), xóa khỏi xâu S đúng k chữ số để số thu được là số nhỏ nhất có thể. Bài 32: Cân vật Cho n quả cân có khối lượng tương ứng là 1, 2, …, n và một cân hai đĩa. Cân thăng bằng khi khối lượng của vật cần cân bằng với tổng khối lượng của các quả cân. Cho vật có khối lượng M. (0<n<20 và 0<M<50). Hỏi có bao nhiêu cách cân khối lượng vật M bẳng n quả cân trên. Input: file văn bản QUACAN.IN gồm 1 dòng chứa 2 số tự nhiên n, M Output: file văn bản QUACAN.OUT gồm 1 dòng ghi số cách cân. Ví dụ: QUACAN.IN. QUACAN.OUT. 5 10. 3. Giải thích: Cách 1: Dùng quả cân 2, 3, 5 Cách 2: Dùng quả cân 1, 4, 5 Cách 3: Dùng quả cân 1, 2, 3, 4 Bài 33: Hình xoắn ốc Viết chương trình sắp xếp ma trận NxM theo hình xoắn ốc. Kết quả được hiển thị lên màn hình. Ví dụ: Nhập n=3, m=3 1 2 3 8 9 4 7 6 5 Bài 34. TIỀN XU Bờm có rất nhiều đồng tiền xu, chúng có một trong hai mệnh giá: A đồng hoặc B đồng. Việc bảo quản tiền xu rất phiền phức, vì vậy, Bờm muốn tiêu hết chúng thật nhanh. Cụ thể hơn, mỗi khi mua một món hàng giá trị C đồng, Bờm chỉ muốn thanh toán bằng tiền xu và sử dụng cách dùng nhiều đồng xu nhất. Chẳng hạn, Nếu bờm có hai loại tiền xu mệnh giá 3 đồng và 5 đồng, khi phải thanh toán lượng tiền 32 đồng, Bờm có hai cách trả: Cách thứ nhất sử dụng 9 xu mệnh giá 3 đồng và 1 xu mệnh giá 5 đồng, cách còn lại sử dụng 4 xu mệnh giá 3 đồng và 4 xu mệnh giá 5 đồng. Cách thức nhất sẽ được Bờm lựa chọn vì giúp bờm tiêu nhiều đồng xu hơn..

<span class='text_page_counter'>(9)</span> Cho A, B, C, hãy xác định số lượng đồng xu nhiều nhất có thể sử dụng đề thanh toán chính xác số tiền C đồng hoặc chỉ ra rằng không có cách thanh toán chỉ sử dụng hai loại đồng xu mệnh giá A, B. Dữ liệu (COINS.INP) . Dòng 1: ba số nguyên A, B, C (1 ≤ A, B ≤ 5000; 1 ≤ C ≤ 106).. Kết quả (COINS.OUT) . Dòng 1: số nguyên là tổng số đồng xu nhiều nhất có thể sử dụng để thanh toán, số này bằng -1 nếu không có cách thanh toán.. Ví dụ: COINS.INP 3 5 32. COINS.OUT 10. Bài 35. BẬC ĐỐI XỨNG Xâu đối xứng là xâu đọc từ trái qua phải giống như đọc từ phải qua trái, chẳng hạn các xâu ‘abba’, ‘madam’ là các xâu đối xứng. Người ta định nghĩa bậc đối xứng của xâu S, kí hiệu deg(S), như sau: . Nếu S không phải là xâu đối xứng hoặc S có độ dài bằng 1 thì bậc đối xứng của S bằng 0 (viết là: deg(S)=0).. . Nếu xâu S là xâu đối xứng có độ dài lớn hơn 1, giả sử S=S 1S2…SN (N > 1), thì bậc đối xứng của S được tính theo công thức: deg(S)= 1+ deg(T), trong đó xâu T là nửa trái của S theo nghĩa: T = S1S2…Sk với k = (N + 1) div 2.. Chẳng hạn:  deg(‘x’) = 0 vì ‘x’ có độ dài bằng 1.  deg(‘x0’) = 0 vì ‘x0’ không đối xứng.  deg(‘x0x’) = 1 vì deg(‘xox’) = 1 + deg(‘xo’).  deg(‘xoxxox’) =2 vì deg(‘xoxxox’)=1+deg(‘xox’) Cho xâu S độ dài không vượt quá 200 chỉ gồm các chữ cái latin thường, hãy xác định bậc đối xứng của S. Dữ liệu (PALINDEG.INP) . Dòng 1: xâu S.. Kết quả (PALINDEG.OUT) . Dòng 1: số nguyên là bậc đối xứng của xâu S.. Ví dụ PALINDEG.INP Bobobbobob. PALINDEG.OUT 3. Bài 36. DÃY CON Cho dãy N số nguyên A= (a1, a2, …, aN) và số nguyên dương M. Hãy tìm cách xóa bỏ trong dãy A một số phần tử sao cho dãy con thu được có nhiều phần tử nhất đồng thời trong dãy con này không có 2 phần tử nào có tổng chia hết cho M. Chẳng hạn, với N = 5, M = 3, A = (1, 2, 3, 4, 5), dãy con dài nhất thu được có độ dài 3, có 4 dãy con như vậy, đó là (1, 2, 3); (1, 3, 4); (2, 3, 5); (3, 4, 5). Dữ liệu (CONFLICT.INP).

<span class='text_page_counter'>(10)</span> . Dòng 1: hai số nguyên N, M (1 ≤ N ≤ 105; 2 ≤ M ≤ 105).. . Dòng 2: N số nguyên a1, a2, …., aN (|ai| ≤ 109 ∀ i = 1. N).. Kết quả (CONFLICT.OUT) . Dòng 1: số nguyên K là số phần tử của dãy con thu được.. . Dòng 2: K số nguyên là chỉ số trong dãy ban đầu của các phần tử dãy cont hu được, các số đưa theo trật tự tăng. Nếu có nhiều cách xóa cho dãy con độ dài K thỏa mãn yêu cầu bài toán thì chỉ cần đưa ra 1 cách.. Ví dụ CONFLICT.INP 32 1 100 10. CONFLICT.OUT 2 12. Bài 37: Sắp xếp xâu Nhập một xâu S bao gồm số và các kí tự “a” Yêu cầu: In ra màn hình xâu đã sắp xếp số theo thứ tự tăng dần còn vị trí các kí tự vẫn giữ nguyên. Ví dụ: Input aaa6aaa776aaaaa2823aaaa95aaa. Output aaa6aaa95aaaaa776aaaa2823aaa. Bài 38: Số nguyên tố rút gọn Số nguyên tố rút gọn của một số tự nhiên n chính là tổng các ước nguyên tố của n. Ví dụ: n=252=2.2.3.3.7 (n có 3 ước nguyên tố là 2, 3 và 7) Số nguyên tố rút gọn của n là 2+3+7=12 Yêu cầu: a/ Nhập số tự nhiên n từ bàn phím, in ra số nguyên tố rút gọn của n. (1<n<1000000) b/ Nhập 2 số nguyên a, b không vượt quá 10000 (a<b). In ra các số có cùng số nguyên tố rút gọn với n trong đoạn a đến b và số lượng các số tìm được. Ví dụ: Nhap n: 252 So nguyen to rut gon cua n: 12 Nhap a, b: 1 200 Cac so co cung so nguyen to rut gon voi n: 35 42 84 126 168 175 Co 6 so Bài 39: Dãy con đúng Cho xâu kí tự S bao gồm toàn các ký tự ‘a’ và ‘b’, không quá 255 ký tự. Dãy con đúng của dãy S là một dãy con liên tục bất kì của S bao gồm các ký tự giống nhau. Dãy con đúng bậc 1 của dãy S là một dãy con liên tục bất kỳ của dãy S bao gồm các ký tự giống nhau nhưng được thêm 1 ký tự khác (ví dụ ‘aaaabaaa’, baaaa, aaaab). Trường hợp đặc biệt, dãy S chỉ có 1 loại ký tự thì dãy con đúng cũng chính là dãy con đúng bậc 1. Yêu cầu: a/ Hãy tính độ dài lớn nhất dãy con đúng của dãy S. b/ Hãy tính độ dài lớn nhất dãy con đúng bậc 1 của dãy S. Ví dụ: ‘aaabaaabbaaaaa’ Độ dài lớn nhất của dãy con đúng: 5 (‘aaabaaabbaaaaa’) Độ dài lớn nhất của dãy con đúng bậc 1: 7 (‘aaabaaabbaaaaa’) Bài 40: Chuỗi xuất hiện một lần.

<span class='text_page_counter'>(11)</span> Cho trước tập tin văn bản INPUT.INP gồm nhiều dòng (không quá 1000 dòng), mỗi dòng chứa một chuỗi ký tự (gồm các chữ cái từ ‘A’ đến ‘Z’ viết dính liền với nhau), mỗi chuỗi dài không quá 255 ký tự. Trong tập tin này có duy nhất một chuỗi xuất hiện đúng một lần, các chuỗi còn lại đều xuất hiện đúng k lần. (Số k không cho trước, nhưng biết rằng k là một số chẵn và k≠0). Yêu cầu: Viết chương trình đọc tập tin INPUT.INP xử lý và tìm chuỗi duy nhất đó, ghi kết quả tìm được vào tập tin văn bản OUTPUT.OUT. Kết quả: Tập tin OUTPUT.OUT có một dòng là chuỗi ký tự tìm được theo yêu cầu. Ví dụ: INPUT.INP OUTPUT.OUT ABCD TINHOCTRE EFGHIJK TINHOCTRE ABCD EFGHIJK Bài 41: Xâu số Một xâu chữ cái được gọi là xâu số nếu sau khi xoá một vài kí tự ta thu được một trong các xâu sau: ONE, TWO, THREE, FOUR, FIVE, SIX, SEVEN, EIGHT hoặc NINE. Các xâu ONE, TWO, THREE, FOUR, FIVE, SIX, SEVEN, EIGHT, NINE được gọi là các từ số (tương ứng với các số nguyên 1, 2, 3, 4, 5, 6, 7, 8, 9). Ví dụ:  BOUNCE và ANNOUNCE là hai xâu số vì hai xâu này có chứa từ số ONE.  ENCODE không phải là xâu số, vì dù có chứa các kí tự O, N và E, nhưng vị trí các kí tự O, N và E trong xâu này không đúng thứ tự. Yêu cầu: Viết chương trình kiểm tra một xâu kí tự chữ cái in hoa được nhập vào từ bàn phím xem có phải là xâu số hay không. Nếu xâu được nhập vào là xâu số thì xuất ra màn hình một số nguyên tương ứng với từ số chứa trong xâu này. Nếu xâu được nhập vào không phải là xâu số thì xuất ra màn hình “KHONG”. Ví dụ: Dữ liệu nhập vào từ bàn phím Dữ liệu xuất ra màn hình BOUNCE 1 ENCODE KHONG Bài 42: Chèn xâu (Dành cho học sinh THCS và THPT) Cho một xâu S = ’123456789’ hãy tìm cách chèn vào S các dấu '+' hoặc '-' để thu được số M cho trước (nếu có thể). Số M nguyên được nhập từ bàn phím. Trong file Output Chenxau.Out ghi tất cả các phương án chèn (nếu có) và ghi "Khong co" nếu như không thể thu được M từ cách làm trên. Ví dụ: Nhập M = 8, một trong các phương án đó là: '-1+2-3+4+5-6+7'; M = -28, một trong các phương án đó là: '-1+2-34+5'; Bài 43: Lưới ô vuông vô hạn (Dành cho học sinh THCS và THPT) Cho lưới ô vuông vô hạn về hai phía (trên và phải). Các ô của lưới được đánh số theo quy tắc sau: - Ô trái dưới - vị trí (0,0) - được đánh số 0..

<span class='text_page_counter'>(12)</span> - Các ô còn lại được đánh số theo nguyên tắc lan toả từ vị trí (0,0) và theo quy tắc: tại một vị trí số được điền vào là số nguyên không âm nhỏ nhất chưa được điền trên hàng và cột chứa ô hiện thời. Ví dụ, ta có hình dạng của một số ô của lưới như sau:. 3. 2. 1. 0. 2 1. 3 0. 0 3. 1 2. 0. 1. 2. 3. Cho trước cặp số tự nhiên M, N - kích thước ô lưới. Hãy viết chương trình mô tả lưới trên, kết quả được ghi vào file KQ.TXT. Bài 44: Thực hiện phép nhân (Dành cho học sinh THCS và THPT) Bạn hãy lập chương trình nhập 2 số nguyên dương a và b. Sau đó thực hiện phép nhân (a x b) như cách nhân bằng tay thông thường. Ví dụ:. Bài 45: - Chữ số thứ N (Dành cho học sinh THCS và THPT) Khi viết các số tự nhiên tăng dần từ 1, 2, 3,… liên tiếp nhau, ta nhận được một dãy các chữ số thập phân vô hạn, ví dụ: 1234567891011121314151617181920... Yêu cầu: Hãy tìm chữ số thứ N của dãy số vô hạn trên. Dữ liệu vào từ file ‘Number.inp’ gồm một số dòng, mỗi dòng ghi một số nguyên dương N (N<109). Kết quả ra file ’Number.out’, với mỗi số N đọc được từ file Number.inp, ghi trên dòng tương ứng chữ số thứ N của dãy. Ví dụ: Number.inp Number.out 5 5 10 1 54 3 Bài 46 - Các số lặp (Dành cho học sinh THCS và THPT) Cho dãy số nguyên gồm N phần tử. Lập chương trình in ra số được lặp nhiều nhất trong dãy. Bài 47 - Số phản nguyên tố (Dành cho học sinh THCS và THPT).

<span class='text_page_counter'>(13)</span> Một số n gọi là số phản nguyên tố nếu số ước số của nó là nhiều nhất trong n số tự nhiên đầu tiên. Cho số K (K <= 2 tỷ). Hãy ghi ra số phản nguyên tố lớn nhất nhỏ hơn hoặc bằng K. Dữ liệu vào trong file PNT.INP nội dung gồm: - Dòng đầu tiên là số M (1 < M <= 100) - số các số cần tìm số phản nguyên tố lớn nhất của nó; - M dòng tiếp theo lần lượt là các số K1, K2, K3, ..., KM; Dữ liệu ra trong file PNT.OUT gồm M dòng: dòng thứ i là số phản nguyên tố lớn nhất nhỏ hơn hoặc bằng Ki. Ví dụ: PNT.INP 1 1000 PNT.OUT 840 Bài 48: Tổng các số nguyên tố Viết chương trình nhập vào số nguyên n. Tính tổng các số nguyên tố nhỏ hơn n Vd: Nhập vào số nguyên 4( các số nguyên tố nhỏ hơn 4 là 2,3 ) xuất ra S=5 Bài 49: Phân số Yêu cầu: - Nhập vào từ bàn phím hai phân số, nếu mẫu số không hợp lệ yêu cầu nhập lại mẫu số. Xuất ra màn hình hai phân số đã nhập ở dạng tối giản. - Quy đồng mẫu hai phân số trên với mẫu chung là bội chung nhỏ nhất của hai mẫu số. Xuất hai phân số sau khi quy đồng ra màn hình. - Tính tổng hai phân số trên, xuất ra màn hình phân số tổng ở dạng tối giản. Ví dụ: Nhap phan so thu nhat:Tu: 3 Mau: 10 Nhap phan so thu hai: Tu: 5 Mau: 6 Phan so da nhap: 3/10; 5/6 Phan so sau khi quy dong: 9/30; 25/30 Tong hai phan so: 17/15 Bài 50: Chuỗi số Yêu cầu: Nhập vào từ bàn phím hai chuỗi s1, s2 không quá 255 ký tự gồm ký tự số có lẫn loại ký tự khác. Xóa hết các ký tự không phải ký tự số trong mỗi chuỗi, loại bỏ ký tự ‘0’ ở đầu mỗi chuỗi nếu có để thu được hai con số. (nếu chuỗi rỗng trả về con số 0) - In ra màn hình hai con số thu được - In ra màn hình tổng hai con số trên Ví dụ: Nhap chuoi thu nhat: ‘abc0123d@4$5]’ Nhap chuoi thu hai: ‘*\def56ab7’ So thu nhat: 12345 So thu hai: 567 Tong: 12912 Bài 51: Đánh mã số Từ 5 chữ số 1, 2, 3, 4, 5 ta lập ra tất cả các con số có đúng 5 chữ số. Các con số này được xếp theo thứ tự từ nhỏ đến lớn, con số nhỏ nhất là 11111 được đánh mã số 1; số kế tiếp là 11112 được đánh mã số 2; số kế tiếp 11113 được đánh mã số 3; tiếp tục cho đến hết các con số. Yêu cầu: Cho trước một số n có đúng 5 chữ số lấy từ các chữ số 1, 2, 3, 4, 5..

<span class='text_page_counter'>(14)</span> a) Tìm số chữ số khác nhau của con số n. b) Tìm mã số của con số n. Dữ liệu: Vào từ file văn bản DL.INP - Gồm 1 dòng chứa số n Kết quả: Lưu vào file text KQ.OUT - Dòng đầu tiên chứa số chữ số khác nhau của số n. - Dòng thứ hai chứa mã số của con số n DL.INP KQ.OUT 11121 2 6 Câu 52: Số song tố Số nguyên dương n gọi là song tố khi n là số nguyên tố và tổng chữ số của nó cũng là số nguyên tố. Yêu cầu: Viết chưong trình thực hiện công việc sau: a) Nhập vào số nguyên n. Hãy cho biết n có là số song tố hay không? b) In ra các số song tố bé hơn hoặc bằng n. c) In ra các cặp số nguyên tố lẻ liên tiếp nhỏ hơn hoặc bằng n. Ví dụ: Nhập n=11. Câu a So n la so song to. Câu b 2 3 5 7 11. Câu c (3,5); (5,7). Câu 53: Cắt chuỗi Cho một chuỗi gồm n2 ký tự. Người ta cắt chuỗi từ trái sang phải thành n chuỗi con, mỗi chuỗi con có đúng n ký tự. Viết mỗi chuỗi con thành một cột, ta có một bảng gồm n hàng và n cột ký tự. Yêu cầu: Viết chương trình nhập vào một chuỗi gồm n2 ký tự (4  n2  255). a) In ra màn hình các hàng có tổng mã ASCII của các ký tự là lớn nhất. b) In giá trị tổng ở câu a ra màn hình. Ví dụ: Nhập chuỗi Bảng Kết quả abcdefghi adg a) c f i beh b) 306 cf i Câu 54: Robot đào hầm Khi đào hầm Thủ Thiêm người ta dùng một Robot để đào, ban đầu người ta đào đường hầm 1 đơn vị độ dài sau đó đặt Robot xuống. Robot này được điều khiển bởi 2 lệnh là: C1 và N2. - Lệnh C1 là đào thêm 1 đơn vị độ dài thì tốn 2 đơn vị năng lượng. - Lệnh N2 là đào thêm một đoạn đường hầm bằng độ dài đang có thì tốn 4 đơn vị năng lượng. Hãy viết chương trình ra lệnh cho Robot đào một đường hầm có độ dài k đơn vị độ dài với các lệnh là ít nhất và sự tiêu tốn năng lượng là thấp nhất. Biết ban đầu đường hầm dài 1 đơn vị độ dài. Yêu cầu: - Dữ liệu vào trong tập tin Robot.inp gồm một số k là độ dài đường hầm cần đào. - Dữ liệu ra trong tập tin Robot.out gồm hai dòng: + Dòng đầu là số năng lượng ít nhất đã tiêu tốn cho Robot đào hầm. + Dòng tiếp theo chứa các lệnh C1 hoặc N2, mỗi lệnh cách nhau 1 khoảng trắng. Ví dụ: Robot.inp Robot.out 10 12 C1 N2 C1 N2.

<span class='text_page_counter'>(15)</span> Bài 55: Số chính phương Số tự nhiên n được gọi là số chính phương nếu n thể hiện được ở dạng bình phương của một số tự nhiên khác. VD: 1 là số chính phương vì 1=12 4 là số chính phương vì 4=22 a/ Nhập vào từ bàn phím số tự nhiên n (0<n<255) in ra n số chính phương đầu tiên bắt đầu từ số 1. b/ nhập vào từ bàn phím số tự nhiên m, kiểm tra xem m có phải là số chính phương hay không. Nếu m là số chính phương thì thông báo ra màn hình m là số chính phương, ngược lại in ra màn hình số chính phương nhỏ nhất lớn hơn m. Bài 56: Ước và bội a/ Nhập vào từ bàn phím hai số nguyên dương có giá trị không vượt quá 65000, in ra màn hình ước chung lớn nhất và bội chung nhỏ nhất của chúng. b/ In ra màn hình tất cả các ước chung của hai số trên. (Không xét các trường hợp giá trị nhập vào không hợp lệ) Bài 57: Tính tổng Tính và in ra màn hình kết quả của các dãy số sau với số nguyên dương n nhập từ bàn phím, (0<n<13) nếu nhập n không đúng yêu cầu thì buộc phải nhập lại. a/ S1=1/2+2/3+3/4+…+n/(n+1) b/ S2=1+1/2!+1//3!+…+1/n! (n!=1.2.3. … .n) (Tổng S1, S2 lấy 3 số thập phân) Bài 58: Diện tích lớn nhất Viết chương trình nhập chu vi của một hình chữ nhật sau đó in ra diện tích lớn nhất mà hình chữ nhật đó có thể có được. Ví dụ: Dữ liệu vào Dữ liệu ra Nhap chu vi hinh chu nhat: 34 Nhap chu vi hinh chu nhat: 8 Dien tich lon nhat ma HCN co the co duoc la: 72.25 Dien tich lon nhat ma HCN co the co duoc la: 4.00 Bài 59 : Phân tích số Viết chương trình nhập từ bàn phím một số tự nhiên N (0 < N ≤ 100). Hãy liệt kê và đưa ra màn hình các cách phân tích số N thành tổng của ba số tự nhiên khác nhau. Nếu không có cách nào hãy in ra màn hình câu thông báo ‘KHONG CO’. Ví dụ: Dữ liệu vào Dữ liệu ra Nhap so N: 4 Nhap so N: 6 Nhap so N: 8 KHONG CO 6=1+2+3 8=1+2+5 8=1+3+4 Bài 60: Phân tích thừa số nguyên tố Nhập vào một số tự nhiên N (1 < N ≤ 65355). Hãy kiểm tra số N vừa nhập có phải là số nguyên tố hay không? Nếu đúng thì thông báo ra màn hình đây là số nguyên tố, ngược lại thì phân tích số N thành tích các thừa số nguyên tố. Ví dụ:.

<span class='text_page_counter'>(16)</span> Dữ liệu vào Dữ liệu ra Nhap 1 so tu nhien: 37 Nhap 1 so tu nhien: 30 Nhap 1 so tu nhien: 3456 Nhap 1 so tu nhien: 677 37 la so nguyen to 30 duoc tach thanh tich cac thua so nguyen to: 2. 3. 5 3456 duoc tach thanh tich cac thua so nguyen to: 2. 2. 2. 2. 2. 2. 2. 3. 3. 3 677 la so nguyen to Bài 61: Dãy con lớn nhất Cho dãy số A gồm N số nguyên A1, A2, ..., AN. Dãy số Ap,...,Aq với 1≤p,q≤N được gọi là dãy con của dãy số A. Tổng giá trị các số trong một dãy con được gọi là trọng lượng của dãy con đó. Hãy tìm dãy con có trọng lượng lớn nhất của dãy số A. Dữ liệu vào là tệp văn bản dayso.inp có cấu trúc: - Dòng đầu tiên chứa số N (N≤255). - Dòng thứ hai chứa dãy số A, các số ghi cách nhau ít nhất là một ký tự trống.. Dữ liệu ra là tệp văn bản dayso.out có cấu trúc như sau: - Dòng đầu tiên chứa hai số cách nhau ít nhất một ký tự trống là chỉ số của số đầu và số cuối của dãy con tìm được. - Dòng thứ hai chứa trọng lượng của dãy con tìm được. Ví dụ: Tệp dayso.inp Tệp dayso.out 5 13 3 -1 2 -2 1 4 Bài 62: Robot công nghiệp Trong một nhà máy có trang bị loại Robot công nghiệp để thực hiện việc tự động hoá gia công các sản phẩm. Việc gia công các sản phẩm của Robot được thực hiện đồng thời trên hai sản phẩm cùng một lúc theo tiến trình: Với mỗi loại thao tác gia công được Robot thực hiện trên sản phẩm thứ nhất xong rồi chuyển sang thực hiện trên sản phẩm thứ hai. Để hoàn thành một sản phẩm, Robot có thể thực hiện tới N loại thao tác gia công (N≤ 24) và mỗi loại thao tác gia công đã thực hiện trên một sản phẩm nào đó rồi thì không thực hiện lại trên sản phẩm đó nữa. Robot hoạt động bằng lệnh là một dãy ký tự in hoa, mỗi ký tự là lệnh thực hiện cho một loại thao tác gia công. Lệnh thực hiện các loại thao tác gia công khác nhau là các ký tự khác nhau. Việc đọc dòng lệnh và thực hiện lệnh của Robot được tiến hành theo các chu trình như sau: + Chu trình thứ nhất: Đọc ký tự thứ nhất, thực hiện lệnh tương ứng trên sản phẩm thứ nhất. Tiếp theo đọc ký tự thứ N, thực hiện lệnh tương ứng trên sản phẩm thứ hai. + Chu trình thứ hai: Đọc ký tự thứ hai, thực hiện lệnh tương ứng trên sản phẩm thứ nhất. Tiếp theo đọc ký tự thứ N-1, thực hiện lệnh tương ứng trên sản phẩm thứ hai. + Chu trình thứ ba: Đọc ký tự ba, thực hiện lệnh tương ứng trên sản phẩm thứ nhất. Tiếp theo đọc ký tự thứ N-2, thực hiện lệnh tương ứng trên sản phẩm thứ hai. ... Tương tự với các chu trình còn lại để đọc hết dòng lệnh. Với một xâu S các ký tự in hoa có số lượng các ký tự là chẵn và không quá N x 2, hãy xác định xem nó có phải là một dòng lệnh của Robot đã nói ở trên hay không? Dữ liệu vào: Tệp văn bản ROBOT.INP có cấu trúc: - Dòng đầu tiên ghi 1 số là độ dài xâu S. - Dòng thứ 2 ghi xâu S. Dữ liệu ra: Tệp văn bản ROBOT.OUT ghi thông báo ‘CO’ nếu xâu S là dòng lệnh của Robot, ngược lại ghi thông báo ‘KHONG’ Ví dụ:.

<span class='text_page_counter'>(17)</span> Tệp ROBOT.INP. Tệp ROBOT.OUT. 6 CO CBAABC Tệp ROBOT.INP Tệp ROBOT.OUT 6 KHONG ACBDCA Câu 63: Tổng chia hết cho K Cho một mảng số nguyên gồm n phần tử. Tìm tất cả dãy con gồm m phần tử (mn) sao cho dãy con này có tổng chia hết cho k. (Dãy con là dãy các phần tử liên tiếp nhau trong mảng). Input: file văn bản Cau3.inp  Dòng 1: Chứa 3 số n, m và k cách nhau ít nhất một khoảng cách  Dòng 2: Chứa n số A1, A2, ..., An cách nhau ít nhất một khoảng cách Output: file văn bản Cau3.out  Dòng i: (1 ≤ i ≤ d):Ghi các phần tử trong dãy con thứ i các phần tử cách nhau ít nhất một khoảng cách.  Dòng d+1: Ghi số d (d là số lượng dãy con chia hết cho k). Ví dụ: Cau3.inp Kết quả: Cau3.out. 10 4 7 1 7 9 3 2 0 2 10 1 1. Day con thu 1 : 7 9 3 2 tong la:21 Day con thu 2 : 9 3 2 0 tong la:14 Day con thu 3 : 3 2 0 2 tong la:7 Day con thu 4 : 2 0 2 10 tong la:14 So luong day con chia het cho 7 la: 4. Bài 64: Xóa số vòng tròn (tt) Cho mảng một chiều A có n phần tử, phần tử thứ i của mảng A có giá trị là i và được sắp xếp thành hình vòng tròn theo chiều kim đồng hồ. Bắt đầu từ phần tử thứ 1, ta đếm 1, 2, 3, xoá phần tử thứ 3, bắt đầu từ phần tử thứ 4 tiếp tục đếm 1,2,3 và xoá cho đến khi dãy chỉ còn lại 1 số cuối cùng. Dữ liệu vào: N Yêu cầu: In ra màn hình phần tử cuối cùng của dãy. Ví dụ: Dữ liệu vào Dữ liệu ra 10 4 Bài 65: Số nguồn . Giả thiết N là số nguyên dương. Số nguyên M là tổng của N với các chữ số của nó. N ñược gọi là nguồn của M. Ví dụ, N = 245, khi ñó M = 245 + 2 + 4 + 5 = 256. Như vậy, nguồn của 256 là 245. Có những số không có nguồn và có số lại có nhiều nguồn. Ví dụ, số 216 có 2 nguồn là 198 và 207. Cho số nguyên M (M có không quá 100 chữ số) hãy tìm nguồn nhỏ nhất của nó. Nếu M không có nguồn thì ñưa ra số 0. Bài 66: GHÉP SỐ Cho n số nguyên dương a1, a2, . . .,an (1 < n ≤ 100), mỗi số không vượt quá 109 . Từ các số này người ta tạo ra một số nguyên mới bằng cách ghép tất cả các số ñã cho, tức là viết liên tiếp.

<span class='text_page_counter'>(18)</span> các số ñã cho với nhau. Ví dụ, với n = 4 và các số 123, 124, 56, 90 ta có thể tạo ra các số mới sau: 1231245690, 1241235690, 5612312490, 9012312456, 9056124123,... Có thể dễ dàng thấy rằng, với n = 4, ta có thể tạo ra 24 số mới. Trong trường hợp này, số lớn nhất có thể tạo ra là 9056124123. Yêu cầu: Cho n và các số a1, a2, . . .,an . Hãy xác ñịnh số lớn nhất có thể tạo ra khi ghép các số ñã cho thành một số mới. Dữ liệu vào từ file văn bản NUMJOIN.INP có dạng: - Dòng thứ nhất chứa số nguyên n, - Dòng thứ 2 chứa n số nguyên a1 a2 . . . an . Kết quả ra file văn bản NUMJOIN.OUT gồm một dòng là số lớn nhất có thể tạo ra khi ghép các số ñã cho thành một số mới.. Bài 67: SỐ ĐEP (BEAUTY) Một số được gọi là đẹp nếu tổng bình phương các chữ số của nó (trong dạng biểu diễn thập phân) là một số nguyên tố. Ví dụ, 12 là một số đẹp vì 1 2+22= 5 – số nguyên tố. Các số đẹp được đánh số theo thứ tự tăng dần của giá trị, bắt đầu từ 1 trở đi. Yêu cầu: Cho số nguyên N(1 ≤ N≤ 1000000). Hãy tìm số đẹp thứ N. Input • Gồm nhiều tests, mỗi test cho trên một dòng chứa một số nguyên N. Output • Kết quả mỗi test đưa ra trên một dòng.. BEAUTY.INP BEAUTY.OUT 1 11 6 23. Bài 68: Bỏ sỏi Trong dịp nghỉ hè, bé Mai được bố mẹ cho đi tắm biển. Trên bờ biển bé nhặt được N viên đá cuội rất đẹp mắt. Mai quyết định vẽ trên cát một lưới hình chữ nhật kích thước a x b (a, b nguyên dương) được chia thành a x b ô vuông bằng các đường ngang dọc sao cho có thể rải N hòn sỏi này vào các ô vuông sao cho mỗi ô vuông có nhiều nhất một viên sỏi. Hãy giúp bé Mai chọn kích thước của hình chữ nhật sao cho chu vi của nó là nhỏ nhất. In ra màn hình giá trị chu vi này. Dữ liệu: Nhập vào từ bàn phím số nguyên dương N (N ≤ 10 9). Kết quả: Ghi ra màn hình chu vi của hình chữ nhật tìm được Ví dụ: Dữ liệu nhập vào: 15 Kết quả in ra: 16 Giải thích: Hình chữ nhật tìm được có kích thước 4 x 4.

<span class='text_page_counter'>(19)</span> Bài 70 Biến đổi xâu Cho trước một xâu nhị phân có độ dài bất kỳ. Cần biến đổi xâu nhị phân này về dạng toàn số 0. Các phép biến đổi chỉ có thể là một trong các loại sau: - Biến đổi xâu con 11 thành 00. - Biến đổi xâu con 010 thành 000. Hãy chỉ ra một cách biến đổi xâu đã cho thành xâu có toàn 0. Dữ liệu vào: từ file BAI2.INP xâu nhị phân độ dài bất kỳ. Kết quả: ghi ra file BAI2.OUT như sau: - Dòng đầu tiên chứa xâu ban đầu. - Sau đó mỗi dòng là một xâu tiếp theo sau một phép biến đổi. Xâu cuối cùng là xâu toàn 0. - Nếu không biến đổi được thì ghi "Khong the bien doi duoc". VD: BAI2.INP BAI2.OUT 11000111 00000111 00000100 00000000 Bài 71 Chuẩn hoá văn bản Một văn bản được gọi là văn bản chuẩn nếu: - Hai từ liền nhau có duy nhất một dấu cách trống. - Dấu ngắt câu (dấu chấm, dấu phẩy, dấu chấm phẩy, dấu chấm hỏi, dấu chấm than) được đặt sát vào từ ngay trước nó, sau đó mới đến dấu cách trống. - Dấu mở ngoặc đặt sát vào phía bên trái của từ bắt đầu mở ngoặc. - Dấu đóng ngoặc đặt sát bên phải từ cuối cùng được đóng ngoặc. Hãy viết chương trình để kiểm tra và đưa một đoạn văn bản về dạng văn bản chuẩn. Dữ liệu vào: từ file BAI3.INP Kết quả: ghi ra file BAI3.OUT văn bản đã được chuẩn hoá. Bài 72: Chia lưới Cho lưới M x N (M, N <=20) ô vuông, trong mỗi ô cho trước một số tự nhiên. Hãy tìm cách chia lưới trên làm hai phần (chia theo cạnh lưới) sao cho giá trị tuyệt đối hiệu số của tổng các số trong mỗi phần có giá trị nhỏ nhất (như hình dưới đây)..

<span class='text_page_counter'>(20)</span> Dữ liệu vào: từ file BAI5.INP, được cho như sau: - Dòng đầu tiên gồm 2 số M, N là kích thước ô lưới. - M dòng tiếp theo, mỗi dòng gồm N số cách nhau bởi dấu cách trống, ô nào không có giá trị được cho bằng 0. Kết quả: ghi ra file BAI5.OUT miêu tả lưới sau khi thành hai phần, là một ma trận kích thước M x N gồm các số 0 và 1 (số 0 ký hiệu cho các ô tương ứng với phần thứ nhất, số 1 ký hiệu cho các ô tương ứng với phần thứ hai). Bài 73: Sắp xếp xâu. Người ta định nghĩa: Từ là một nhóm ký tự đứng liền nhau. Cho một xâu St gồm các ký tự lấy từ tập ‘a’ .. ‘z’ và dấu cách. Xâu không quá 20 từ, mỗi từ dài không quá 10 ký tự. Yêu cầu: Sắp xếp các từ của xâu ký tự theo thứ tự không giảm của độ dài các từ trong xâu St. Dữ liệu vào: Cho trong file văn bản SAPXAU.INP, có cấu trúc: - Dòng 1: Ghi một xâu ký tự St (có ít nhất 1 từ). Dữ liệu ra: Ghi ra file văn bản SAPXAU.OUT, theo cấu trúc: - Dòng 1: Ghi các từ của xâu ký tự sau khi được sắp xếp. Các từ được ghi cách nhau đúng một dấu cách. Bài 74: Dãy con liên tiếp. Cho dãy số nguyên dương gồm N phần tử A1, A2,…, An. Yêu cầu: Hãy liệt kê tất cả các dãy con gồm các phần tử đứng liên tiếp của dãy trên sao cho tổng giá trị các phần tử của dãy con đó bằng M. Dữ liệu vào: Cho trong file văn bản DAYCON.INP, có cấu trúc như sau: - Dòng 1: Ghi 2 số nguyên dương N và M. Hai số được ghi cách nhau ít nhất một dấu cách. (1 ≤ N ≤ 1000; 1 ≤ M ≤ 32000) - Dòng 2: Ghi N số nguyên dương Ai. Các số được ghi cách nhau ít nhất một dấu cách. (1 ≤ Ai ≤ 10000) Dữ liệu ra: Ghi ra file văn bản DAYCON.OUT, gồm nhiều dòng. Mỗi dòng ghi một dãy con tìm được. Các dãy con được ghi theo thứ tự xuất hiện của nó trên dãy ban đầu. Các số trên cùng một dòng được ghi cách nhau ít nhất một dấu cách. Nếu không tìm được dãy con thỏa mãn điều kiện thì ghi ra file một số: 0 Bài 75 - Tô màu Cho một bảng gồm các ô vuông kích thước M x N (M, N ≤ 100), trong đó có một số ô đen, còn lại là các ô trắng. Yêu cầu: Hãy tô màu tất cả các ô trắng bằng hai màu xanh và vàng sao cho trên mỗi dòng cũng như trên mỗi cột số các ô màu xanh và vàng lệch nhau không quá 1. Dữ liệu vào: Được cho trong file văn bản BAI3.INP - Dòng đầu ghi hai số M, N - M dòng tiếp theo mỗi dòng ghi N số, gồm các số 0 hoặc 1 biểu diễn bảng ô vuông, với 0 biểu thị ô trắng, 1 biểu thị ô đen. Kết quả: Ghi ra file văn bản BAI3.OUT gồm M dòng, mỗi dòng gồm N ký tự viết liền nhau biểu diễn trạng thái màu đã tô của bảng với D: màu đen, X: màu xanh, V: màu vàng. Bài 76: Tách xâu.

<span class='text_page_counter'>(21)</span> Một xâu S1 được gọi là xâu đối xứng nếu S1’ = S1 với S1’ là xâu nhận được từ xâu S1 khi đọc từ phải qua trái. Ví dụ: “aba” là xâu đối xứng, “abc” là xâu không đối xứng. Cho một xâu kí tự S gồm N kí tự (1 <= N <= 100), hãy tìm cách chia S thành ít nhất các đoạn mà mỗi đoạn đều là các xâu đối xứng. Dữ liệu vào: PALIN.INP + Dòng đầu gồm 1 số nguyên: N + Dòng thứ hai ghi xâu S Dữ liệu ra: PALIN.OUT + Dòng đầu ghi 1 số nguyên: K (số đoạn ít nhất tìm được) + K-1 dòng sau, mỗi dòng ghi 1 số nguyên Ti, với Ti là vị trí kết thúc của đoạn thứ i (đoạn thứ K kết thúc tại N). Bài 77: SỐ THÂN THIỆN Đang tìm hiểu các thuật toán về số tự nhiên, Nguyên phát hiện ra số tự nhiên có rất nhiều tính chất thú vị. Ví dụ số hoàn hảo có tính chất: tổng các ước bằng 2 lần số đó, như số 6, số 24… Nhiều số tự nhiên khi tìm ước chung lớn nhất với số đảo ngược của nó bằng 1, những số như thế được gọi là số thân thiện. Chẳng hạn số 23, số đảo ngược của nó là 32, hai số này có ước chung lớn nhất là 1 nên số 23 là số thân thiện và 32 cũng là số thân thiện. Yêu cầu: Cho 2 số tự nhiên a, b (10 ≤ a ≤ b ≤ 104). Hãy đếm xem trong đoạn từ a đến b có bao nhiêu số thân thiện. Bài 78. Xâu chung Xâu S được gọi là xâu con chung của xâu S1 và xâu S2 nếu xâu S là một dãy các ký tự liên tiếp trong S1 và cũng là dãy các ký tự liên tiếp trong S2. Yêu cầu: Cho hai xâu kí tự S1 và S2 (có không quá 255 ký tự). Hãy tìm một xâu con chung S dài nhất của hai xâu S1 và S2. Ví dụ: S1 = ’Ky thi học sinh gioi Tinh môn Tin hoc’, S2 = ’hoc sinh gioi mon Tin hoc’ thì S = ‘hoc sinh gioi '. Dữ liệu vào từ file văn bản Bai2.inp: • Dòng đầu tiên ghi xâu S1; • Dòng thứ hai ghi xâu S2. Kết quả ghi ra file văn bản Bai2.out: Chỉ một số duy nhất là độ dài của xâu con chung dài nhất S. (Nếu hai xâu S1, S2 không có kí tự nào chung thì ghi số 0). Bài 79. Tổng bình phương Cho số nguyên dương , hãy xác định số cách biểu diễn bằng các bộ có thứ tự bốn số nguyên không âm (a, b, c, d ) sao cho N = a2 + b2 + c2 + d2. Chẳng hạn với N = 3, ta có 4 cách biểu diễn:. Dữ liệu (csquare4.inp) - Dòng 1: số nguyên (1 ≤ N ≤ 10000000) Kết quả (csquare4.out) - Dòng 1: số nguyên là số cách biểu diễn thành tổng bình phương của bốn số nguyên không âm. Ví dụ: Bài 80: Biểu diễn số.

<span class='text_page_counter'>(22)</span> Cho số tự nhiên n>0, ta viết n dưới n dạng n= 2 m+p, với m là số tự nhiên lớn nhất. Ví dụ số tự nhiên n=11 được viết dưới dạng n= 23+3 trong đó m=3, p = 3; Yêu cầu: Viết chương trình nhập vào số tự nhiên n. Xuất ra màn hình giá trị của m và p. Bài 81: Biểu diễn phân số Với số nguyên dương Y cho trước, xét tập hợp X(Y) gồm tất cả các phân số có giá trị thuộc đoạn [0, 1] với mẫu số không lớn hơn Y. Ví dụ: với Y = 7, ta có các phân số sau: 0/1; 1/7; 1/6; 1/5; 1/4; 2/7; 1/3; 2/5; 3/7; 1/2; 4/7; 3/5; 2/3; 5/7; 3/4; 4/5; 5/6; 6/7; 1/1 Cho trước số nguyên dương Y, viết chương trình in ra mọi phân số tối giản thuộc X(Y) theo thứ tự tăng dần của giá trị. - Dữ liệu vào: file BAI1.INP Gồm một dòng duy nhất ghi số nguyên dương Y ≤ 100. - Kết quả: file BAI1.OUT Gồm một số dòng, mỗi dòng ghi một phân số thuộc X(Y) theo thứ tự tăng dần, mỗi phân số viết dưới dạng tử số/mẫu số.

<span class='text_page_counter'>(23)</span>

<span class='text_page_counter'>(24)</span>

<span class='text_page_counter'>(25)</span>

<span class='text_page_counter'>(26)</span>

<span class='text_page_counter'>(27)</span>

<span class='text_page_counter'>(28)</span>

<span class='text_page_counter'>(29)</span>

×