LH Quảng cáo: lazijsc@gmail.com

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

Giải bài có thưởng!

Một số nguyên dương được gọi là số đẹp nếu tổng các chữ số của nó ( trong hệ thập phân) chia hết cho số chữ số

Một số nguyên dương được gọi là số đẹp nếu tổng các chữ số của nó (trong hệ thập phân) chia hết cho số chữ số. Ví dụ, 15 là một số đẹp vì 1+5 chia hết cho 2. Các số đẹp được đánh số từ 1 trở đi theo thứ tự tăng dần của giá trị. Yêu cầu: Cho số nguyên dương????(???? ≤ 106). Hãy tìm số đẹp thứ n Dữ liệu: nhập từ bàn phím nguyên dương n. Kết quả: xuất ra màn hình số đẹp thứ n. Lưu ý: bài làm được đặt tên BEAUTY.PAS
0 trả lời
Hỏi chi tiết
164
Tham khảo câu trả lời từ Trợ lý ảo Lazi
Dưới đây là một chương trình mẫu viết bằng Pascal để tìm số đẹp thứ n theo yêu cầu của bạn. Chương trình sẽ kiểm tra từng số nguyên dương, tính tổng các chữ số, và xác định xem tổng đó có chia hết cho số chữ số hay không.

```pascal
program BEAUTY;

function IsBeautiful(num: Integer): Boolean;
var
sumDigits, countDigits, temp: Integer;
begin
sumDigits := 0;
countDigits := 0;
temp := num;

// Tính tổng chữ số và số chữ số
while temp > 0 do
begin
sumDigits := sumDigits + (temp mod 10);
temp := temp div 10;
countDigits := countDigits + 1;
end;

// Kiểm tra điều kiện số đẹp
IsBeautiful := (sumDigits mod countDigits = 0);
end;

var
n, count, currentNum: Integer;

begin
// Nhập số n từ bàn phím
Write('Nhap n: ');
ReadLn(n);

count := 0;
currentNum := 0;

// Tìm số đẹp thứ n
while count < n do
begin
Inc(currentNum);
if IsBeautiful(currentNum) then
begin
Inc(count);
end;
end;

// Xuất ra số đẹp thứ n
WriteLn('So dep thu ', n, ' la: ', currentNum);
end.
```

### Giải thích chương trình:

1. **Hàm `IsBeautiful`**:
- Hàm này nhận một số nguyên dương `num` và kiểm tra xem nó có phải là số đẹp hay không bằng cách tính tổng các chữ số và số lượng chữ số của nó.
- Nếu tổng chữ số chia hết cho số lượng chữ số, hàm trả về `True`, ngược lại trả về `False`.

2. **Chương trình chính**:
- Nhập giá trị `n` từ bàn phím.
- Sử dụng vòng lặp để kiểm tra từng số nguyên dương bắt đầu từ 1 đến khi tìm được số đẹp thứ n.
- Khi tìm được số đẹp, đếm và khi đạt đến giá trị n, in ra số đẹp thứ n.

3. **Chú ý**: Chương trình này sẽ làm việc nhanh chóng cho n <= 106 vì số đẹp không xuất hiện quá gần nhau.

Bạn chỉ cần chạy chương trình trên môi trường hỗ trợ Pascal để có được kết quả mong muốn!

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
Trắc nghiệm Tin học Lớp 10 mới nhất

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

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