vd: n = 365 m =2 tổng = 5+6=11.
Cách 1:
uses crt;
var n: longint;
m,tong,i: integer;
BEGIN
clrscr;
write('Nhap n: '); readln(n);
write('Nhap m: '); readln(m);
for i:=1 to m do
begin
tong:=tong+(n mod 10);
n:=n div 10;
end;
write('Tong ',m,' chu so cuoi cua so vua nhap = ',tong);
readln;
END.
var n: longint;
m,tong,i: integer;
BEGIN
clrscr;
write('Nhap n: '); readln(n);
write('Nhap m: '); readln(m);
for i:=1 to m do
begin
tong:=tong+(n mod 10);
n:=n div 10;
end;
write('Tong ',m,' chu so cuoi cua so vua nhap = ',tong);
readln;
END.
Cách 2: Sử dụng xâu: Xâu giúp lưu trữ thoải mái hơn kiểu số nguyên, nên ta có thể khái báo N có ở string thay vì Integer. Như vậy, ở những trường hợp lớn (vd N bao gồm 100 chữ số chẳng hạn) thuật toán vẫn có thể hoạt động bình thường.
uses crt;
var n: string;
m,i,a,tong: integer;
BEGIN
clrscr;
write('Nhap so n: '); readln(n);
write('Nhap m: '); readln(m);
for i:= length(n) downto length(n)-m+1 do
begin
val(n[i],a);
tong:=tong+a;
end;
write(tong);
readln;
END.
var n: string;
m,i,a,tong: integer;
BEGIN
clrscr;
write('Nhap so n: '); readln(n);
write('Nhap m: '); readln(m);
for i:= length(n) downto length(n)-m+1 do
begin
val(n[i],a);
tong:=tong+a;
end;
write(tong);
readln;
END.
Như vậy, thay vì dùng lệnh mod như khi nhập N vào dưới dạng số nguyên, ta dùng thủ tục val của xâu (biến từ chữ thành số), các bạn có thể xem thêm tại bài Xâu - String.
Không có nhận xét nào:
Đăng nhận xét