Độ bền của một số nguyên - Bài Tập Pascal Tổng Hợp

Độ bền của một số nguyên

Độ bền của một số nguyên không âm n được định nghĩa 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.Yêu cầu: Tìm số bé hơn n có độ bền lớn nhất.

Dứ liệu: Vào từ file văn bản Doben.inp. Mỗi dòng ghi một số nguyên dương NKết quả: Ghi ra file văn bản Doben.out. Mỗi dòng ghi một số tương ứng tìm được.
Ví dụ: Với n = 100 thì in ra kết quả: So be hon 100 co do ben lon nhat la: 77
• Giải thích:
 
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
Chương trình:
Program Do_ben;
uses crt;
Var n,d,i,j,max,k:longint;
f1,f2:text;
{----------------------------------------------------------}
Function TICH(n:Longint):Longint;
Var t:integer;
Begin
if n=0 then t:=0 else t:=1;
While n<> 0 do
Begin
t:=t*(n mod 10);
n:=n div 10;
End;
TICH:=t;
End;
{----------------------------------------------------------------}
Begin
assign(f1,'doben.inp');reset(f1);
assign(f2,'doben.out');rewrite(f2);
read(f1,n);
Max:=0;
For i:=1 to n do
Begin
d:=0;
j:=i;
While j>9 do
Begin
d:=d+1;
j:=TICH(j);
End;
if d>=Max then
Begin
max:=d;
k:=i;
End;
End;
write(f2,k);
close(f1);close(f2);


End.
Previous
Next Post »