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

Năm 1973, nhà Toán học Neil Sloan đưa ra khái niệm độ bền của một số nguyên không âm N như sau: Nếu N có một chữ số thì độ bền của N bằng 0. Nếu N có từ 2 chữ số trở lên thì độ bền của N bằng độ bền của số nguyên là tích các chữ số của N cộng 1

Năm 1973, nhà Toán học Neil Sloan đưa ra khái niệm độ bền của một số nguyên không âm N như sau:
Nếu N có một chữ số thì độ bền của N bằng 0.
Nếu N có từ 2 chữ số trở lên thì độ bền của N bằng độ bền của số nguyên là tích các chữ số của N cộng 1.
Vd: Doben(77) = Doben(49) + 1 = Doben(36) + 1 + 1 = Doben(18) + 1 + 1 + 1 = Doben(8) + 1 + 1 + 1 + 1 = 0 + 1 + 1 + 1 + 1 = 4
Viết chương trình tính độ bền của một số nguyên dương n.
3 Xem trả lời
Hỏi chi tiết
6.013
3
0

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
1
0
Pascal
2
0
Bạch Ca
08/01/2018 13:32:39
Tạo các biến cho chương trình như sau: i, j, k, n, do_ben, max kiểu longint
{Lập hàm tính tích các chữ số của N}
function tich(biến n kiểu longint) trả về dữ liệu kiểu longint
Tạo biến kqua có kiểu dữ liệu longint
Khi n=0 thì gán biến kqua = 0 ngược lại gán biến kqua = 1
Chạy vòng lặp While khi n<>0
gán kqua = kqua * (n mod 10)
gán n = n div 10
Sau khi chạy xong vòng lặp thì gán kết quả trả về cho hàm tich = dữ liệu của biến kqua
{Chương trình chính}
Bắt đầu chương trình
Chạy vòng lặp While khi true (luôn luôn chạy) yêu cầu nhập và kiểm tra số nguyên N
Xóa dữ liệu hiển thị trên màn hình
In yêu cầu nhập số nguyên không âm N, điều kiện (0 <= N <= 2,000,000,000)
Đọc dữ liệu nhập và gán vào biến n
Kiểm tra biến n (nếu lớn hơn hoặc bằng 0 và nhỏ hơn hoặc bằng 2,000,000,000) thì thoát vòng lặp While
Ngược lại thì không thoát vòng lặp While
Gán biến max = 1
Chạy vòng For duyệt biến i từ 1 đến n
gán biến do_ben = 0
gán biến j = i
Chạy vòng lặp While khi j>9
gán biến do_ben = do_ben + 1
gán biến j = kết quả hàm tich(j)
Nếu biến do_ben lớn hơn hoặc bằng biến max thì
gán biến max = do_ben
gán biến k = i
Thoát vòng For
In kết quả Số bé hơn N có độ bền lớn nhất là K
In kết quả Độ bền của K là max
Chương trình Pascal
program Do_Ben_So_Nguyen;
uses crt;
var i,j,k:longint;
var n,do_ben,max:longint;
function tich(n:longint):longint;
var kqua:longint;
begin
if n=0 then kqua:=0 else kqua:=1;
while n<>0 do
begin
kqua:=(kqua*(n mod 10));
n:=(n div 10);
end;
tich:=kqua;
end;
begin
while true do
begin
clrscr;
write('Nhap so nguyen khong am N (0 <= N <= 2,000,000,000): ');
readln(n);
if (n>=0) and (n<=2000000000) then break;
end;Thoát chương trình
 

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
×
Trợ lý ảo Trợ lý ảo
×
Đấu trường tri thức | Lazi Quiz Challenge +500k
Gửi câu hỏi
×