Bài tập  /  Bài đang cần trả lời

Một người đánh số trang sách bằng các số tự nhiên từ 1 đến N, người đó phải dùng K chữ số (K≤10). Chẳng hạn N=13, các trang sách là 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13. Cần 17 chữ số để đánh số cho 13 trang sách

Một người đánh số trang sách bằng các số tự nhiên từ 1 đến N, người đó phải dùng K chữ số (K≤10). Chẳng hạn N=13, các trang sách là 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13. Cần 17 chữ số để đánh số cho 13 trang sách. Người ta sắp xếp các số trang liền kề với nhau tạo thành một dãy số liên tục. Chữ số thứ M (MSK) trong dãy gọi là C. Ví dụ: Dãy 13 trang sách: 12345678910111213. M=6 C-6 M=10 C=1 M=15C-2 Yêu cầu: Viết chương trình thực hiện các công việc sau: a) Nhập vào số nguyên dương N (1≤N≤104). Xuất ra màn hình số lượng K chữ số cần dùng để đánh số trang cho N trang sách. b) Nhập vào số nguyên dương M (MSK). Xuất ra màn hình chữ số C.


pascal nha!~
1 trả lời
Hỏi chi tiết
94
Tham khảo câu trả lời từ Trợ lý ảo Lazi
Dưới đây là chương trình Pascal để thực hiện các yêu cầu của bạn:

```pascal
program PageNumbering;

uses
SysUtils;

var
N, M, K, i, len: Integer;
pages: String;
C: Char;

begin
// Nhập số nguyên dương N
Write('Nhap so nguyen duong N (1 <= N <= 10000): ');
Readln(N);

// Tạo dãy số các trang sách từ 1 đến N
pages := '';
for i := 1 to N do
pages := pages + IntToStr(i);

// Tính số lượng chữ số K cần dùng
K := Length(pages);
Writeln('So luong K chu so can dung: ', K);

// Nhập số nguyên dương M
Write('Nhap so nguyen duong M (1 <= M <= ', K, '): ');
Readln(M);

// Lấy chữ số thứ M trong dãy
if (M >= 1) and (M <= K) then
begin
C := pages[M];
Writeln('Chu so thu ', M, ' la: ', C);
end
else
Writeln('Gia tri M khong hop le.');
end.
```

Chương trình này thực hiện các bước sau:
1. Nhập số nguyên dương N.
2. Tạo một chuỗi `pages` chứa các số từ 1 đến N.
3. Tính và in ra số lượng chữ số K cần dùng để đánh số trang.
4. Nhập số nguyên dương M.
5. Kiểm tra và in ra chữ số thứ M trong chuỗi `pages`.

Lưu ý rằng chương trình này giả định rằng người dùng nhập đúng các giá trị trong phạm vi cho phép. Nếu cần xử lý thêm các trường hợp ngoại lệ hoặc kiểm tra đầu vào, bạn có thể thêm các điều kiện kiểm tra tương ứng.
1
0
Phạm Thảo Minh
03/07 20:31:42
+5đ tặng

Mở khóa để xem toàn bộ nội dung trả lời

(?)
Bạn đã đạt đến giới hạn của mình. Bằng cách Đăng ký tài khoản, bạn có thể xem toàn bộ nội dung trả lời
Cải thiện điểm số của bạn bằng cách đăng ký tài khoản Lazi.
Xem toàn bộ các câu trả lời, chat trực tiếp 1:1 với đội ngũ Gia sư Lazi bằng cách Đăng nhập tài khoản ngay bây giờ
Tôi đã có tài khoản? Đăng nhập

Bạn hỏi - Lazi trả lời

Bạn muốn biết điều gì?

GỬI CÂU HỎI
Học tập không giới hạn cùng học sinh cả nước và AI, sôi động, tích cực, trải nghiệm

Hôm nay bạn thế nào? Hãy nhấp vào một lựa chọn, nếu may mắn bạn sẽ được tặng 50.000 xu từ Lazi

Vui Buồn Bình thường

Học ngoại ngữ với Flashcard

×
Gia sư Lazi Gia sư
×
Trợ lý ảo Trợ lý ảo