[Tin Học] Pascal xét số nguyên

phuongdaitt1

Cựu Phó nhóm Tiếng Anh
Thành viên
6 Tháng mười hai 2015
1,886
4,315
496
Tiền Giang
HMF Forum
[TẶNG BẠN] TRỌN BỘ Bí kíp học tốt 08 môn
Chắc suất Đại học top - Giữ chỗ ngay!!

ĐĂNG BÀI NGAY để cùng trao đổi với các thành viên siêu nhiệt tình & dễ thương trên diễn đàn.

Mọi người giúp em bài này với, em đang cần gấp.
Viết chương trình nhập vào một số nguyên dương N (N<= 15000), kiểm tra và in ra màn hình
+Số N có chia hết cho 4 ?
+N có bao nhiêu chữ số ?
+Tổng các chữ số của N là bao nhiêu ?
+Số đảo ngược của N ?
 

Hoa Tử Anh

Học sinh chăm học
Thành viên
26 Tháng tư 2017
66
31
56
Khánh Hòa
MÌnh xin đưa ra ý tưởng
+Số N có chia hết cho 4 ?
Bạn kiểm tra: If n mod 4=0 then n chia hết cho 4 ngược lại thì không chia hết
+N có bao nhiêu chữ số ?
Cái này có nhiều cách, bạn có thể đổi ra chuỗi rồi lấy độ dài của nó, nhưng ở đây Vì n<=15000 nên không thể (string: 256 thôi). Nên dùng div đi
tức là 1 con số, trong khi nó khác không thì cứ chia cho 10 mỗi lần chia đếm số chữ số:
d:=0;
While n<>0 do
Begin
n:=n div 10;
inc(d);
End;
kết quả là d.
+Tổng các chữ số của N là bao nhiêu ?
Tương tự như câu trên, bạn tách n ra thành các chữ số rồi tính dồn tổng
t:=0 ( khởi đầu biến tổng rỗng)
While n<>0 do
begin
t:=t + (n mod 10);
n:=n div 10;
end;
kết quả là t.
+Số đảo ngược của N ?
như mình nói, bạn có thể đổi ra chuỗi rồi đi từ cuối chuỗi đến đầu chuỗi xong in ra từng "số". nhưng vì giới hạn vượt 256 nên dùng cách khác
cũng như cách trên lấy từng phần tử ra, đổi chữ số đó thành chuỗi xong in ra
while n<>0 do
begin
string(n mod 10, s) {đổi phần tử cuối ra chuỗi}
write(s) {in nó ra}
n:=n div 10;
end;
* Nếu bạn làm 1 bài gồm mấy câu vậy thì gán tạm n cho m để xử lí, để giữ được n cho những câu sau. Có chỗ nào không hiểu thì bạn nói nhé. Đây chỉ là cách của mình, nếu có cách nào hay hơn thì mình xin học hỏi. Chúc bạn học tốt!
 

Nguyễn Thánh Tiền

Mr Favoirite 2012
Thành viên
2 Tháng mười 2010
1,931
782
324
Hà Nội
cO VUA
Cái này có nhiều cách, bạn có thể đổi ra chuỗi rồi lấy độ dài của nó, nhưng ở đây Vì n<=15000 nên không thể (string: 256 thôi). Nên dùng div đi
tức là 1 con số, trong khi nó khác không thì cứ chia cho 10 mỗi lần chia đếm số chữ số:
15000 bằng 5 chữ số bé hơn rất nhiều 256 của string với string em có thể tạo 1 số rất rất lớn nhé

Thân
 
Top Bottom