uses crt;
var n:string; d:text; i,tong,a,e:longint;
begin
clrscr;
assign(d,'ONEDIGHT.INP');reset(d);
readln(d,n);
close(d);
assign(d,'ONEDIGHT.OUT');rewrite(d);
repeat
tong:=0;
for i:=1 to length(n) do
begin
val(n[i],a,e);
inc(tong,a);
end;
str(tong,n);
until length(n)=1;
writeln(d,n);
close(d);
end.
Giải thích:
Khi mới vào mình đọc n là xâu luôn để tiện tính tổng nhé
Chạy cho đến khi còn 1 chữ số:
Cộng các chữ số:
-Mình dùng hàm val(đổi từ xâu ra số).
-Cộng các số đó lại(ta có tổng các chũ số của n);
Ta chuyển tổng ra xâu lại với hàm str(ngược lại với val) để lầm sau có thể thực hiện tiếp.
Nếu có gì không hiểu hay code có chỗ nào chưa hợp lí thì các bạn hãy để lại bình lận nhé
!!! :))))
Mình có một số text cho các bạn tham khảo: