SOL:
• Nếu $1\le n\le9$ thì độ dày là $1$, độ cao là $n$
• Tính số chữ số ta dùng vòng lặp $while$, độ dầy tăng lên $1$
Đồng thời cộng từng chữ số vào độ cao, sau mỗi lần lặp thì $\dfrac n{10}$
• Độ phức tạp thời gian của thuật toán là $O(n)$
Code:
const fi='SO.INP';
fo='SO.OUT';
var f:text;
n,count,sum:QWord;
begin
assign(f,fi); reset(f);
readln(f,n);
if(n<=9) then
begin
count:=1;
sum:=n;
end else begin
while(n>0) do
begin
inc(sum,n mod 10);
inc(count);
n:=n div 10;
end;
end;
close(f);
assign(f,fo); rewrite(f);
writeln(f,count);
writeln(f,sum);
close(f);
end.