Tóm tắt:
cho Q truy vấn, mỗi truy vấn gồm số n. Nhiệm vụ của ta là tính độ dài của số n và tổng các chữ số n
Ý tưởng:
n mod 10: ra chữ số
n div 10: ra số còn lại
n = 135
while (m > 0) do
5 13
3 1
1 0
Sử dụng xâu
Đối với bài này, số chữ số của n tối đa là 500 chữ số nên để được full điểm cần dùng ý tưởng "sử dụng xâu".
Cách làm:
tính độ dài của số n: length(n) với n : ansistring;
tính tổng từng số hạng:
lặp từ 1 -> length(n):
để biến kí tự n[i] từ char sang integer ta sẽ sử dụng: ord(n[i]) - ord('0')
program number;
uses crt;
var n : ansistring; //string luu toi da do dai la 255
q : integer;
i : integer;
chuso : integer;
p,d : integer;
f,g : text;
BEGIN
clrscr;
assign(f, 'number.inp'); reset(f);
assign(g, 'number.out'); rewrite(g);
readln(f, q);
while (q > 0) do
begin
q := q-1;
readln(f, n);
d := length(n);
p := 0;
//p : tong chu so
for i := 1 to length(n) do
begin
chuso := ord(n[i]) - ord('0');
p := p + chuso;
end;
writeln(g, d,' ',p);
end;
close(f);
close(g);
END.