-
03-07-2011, 04:15 AM #11
Junior Member
- Ngày tham gia
- Aug 2015
- Bài viết
- 2
Gửi bởi khaimy123
Bài như vậy phải dùng ansistring thay cho string. Vì ansistring chứa tối đa (2^31)-1 ký tự
-
03-07-2011, 04:35 AM #12
Junior Member
- Ngày tham gia
- Aug 2015
- Bài viết
- 5
Gửi bởi Shiro
Ban đầu dùng string thì chạy được test n=12, . Bây giờ dùng ansistring thì chỉ được thêm n=123 là đúng thôi
Anh xem còn cách nào nữa không?#-o
-
03-07-2011, 05:01 AM #13
Junior Member
- Ngày tham gia
- Nov 2015
- Bài viết
- 4
Gửi bởi khaimy123
-
03-07-2011, 05:18 AM #14
Silver member
- Ngày tham gia
- Aug 2015
- Bài viết
- 279
Còn cách nào nữa không a[IMG]data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABAQMAAAA l21bKAAAAA1BMVEXh5PJm+yKVAAAAAXRSTlMAQObYZgAAAApJR EFUCNdjYAAAAAIAAeIhvDMAAAAASUVORK5CYII=[/IMG]#-o:lick:[IMG]data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABAQMAAAA l21bKAAAAA1BMVEXh5PJm+yKVAAAAAXRSTlMAQObYZgAAAApJR EFUCNdjYAAAAAIAAeIhvDMAAAAASUVORK5CYII=[/IMG])
-
03-07-2011, 05:36 AM #15
Junior Member
- Ngày tham gia
- Nov 2015
- Bài viết
- 0
Code
Bài này mình làm khai báo xâu S kiểu string nên bạn chỉ chạy được đến số 121 thôi (string gồm 255 kí tự mà!), bạn có thể khai báo s kiểu ansistring như anh Shiro nói!
Mã:uses crt; var s1,s:string; a,t,i,n:longint; code:integer; begin clrscr; write('Nhap n:'); readln(N); s:='';{xau S la xau rong} for i:=1 to n do begin str(i,s1); s:=s+s1; end; for i:=1 to length(s) do begin val(s[i],a,code); t:=t+a; end; writeln('Xau: ',s); write('Tong: ',t); readln; end.
-
03-08-2011, 02:54 AM #16
Junior Member
- Ngày tham gia
- Aug 2015
- Bài viết
- 2
Chẳng lẽ không ai giải được bài này hay sao?[IMG]data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABAQMAAAA l21bKAAAAA1BMVEXh5PJm+yKVAAAAAXRSTlMAQObYZgAAAApJR EFUCNdjYAAAAAIAAeIhvDMAAAAASUVORK5CYII=[/IMG])
-
03-08-2011, 04:19 AM #17
Junior Member
- Ngày tham gia
- Nov 2015
- Bài viết
- 0
Gửi bởi khaimy123
-
03-08-2011, 05:06 AM #18
Junior Member
- Ngày tham gia
- Nov 2015
- Bài viết
- 0
Nhưng mà nhập số 2468, 13579,..., lớn hơn thì không được.
Với lại kiểu ansistring chỉ có trong free pascal thôi còn turbo pascal đâu có. Đi thi lỡ nó bắt sài có turbo pascal thì sao anh?
Chỉ còn cách tạo một file 'tam' chứa các số nguyên từ 1->n
Vd
tong.inp
n=2468
tong.out
73924
tam.out
1234567891011121314151617181920...2468 rồi cộng vào.
Anh thử suy nghĩ theo hướng này xem.:book:
-
03-08-2011, 05:26 AM #19
Junior Member
- Ngày tham gia
- Aug 2015
- Bài viết
- 1
Gửi bởi khaimy123
Đi thi bây giờ đã chuyển đổi tất cả là FPC không còn chuyện TurboPascal.
Bạn nói 2468 vượt ansistring??? Thậm chí nó còn không vượt string kia kìa, hay bạn đề cập đến việc lưu toàn bộ 1->N vào 1 chuỗi???
Đề yêu cầu in ra 1 chuỗi số như vậy, không có nghĩa ta cần cả chuỗi, in liền nhau là được. Dùng ansistring là vì khi nhập test lớn hơn 19 chữ số thì còn xài được (nhưng vẫn chẳng biết giới hạn bạn cho bao nhiêu [IMG]data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABAQMAAAA l21bKAAAAA1BMVEXh5PJm+yKVAAAAAXRSTlMAQObYZgAAAApJR EFUCNdjYAAAAAIAAeIhvDMAAAAASUVORK5CYII=[/IMG] )
-
03-08-2011, 11:48 PM #20
Junior Member
- Ngày tham gia
- Aug 2015
- Bài viết
- 4
Đây là nguyên văn bài thi
Tổng các chữ số
Cho số nguyên dương n. VIết các số nguyên liên tiếp từ 1 tới n trong hệ thập phân để tạo ra một dãy các chữ số. Hãy tính tổng các chữ số của dãy.
Ví dụ : với n = 12, ta có dãy chữ số 123456789101112 với tổng là 51.
test 1 : n = 12
test 2 : n = 123
test 3 : n = 2468
test 4 : n = 13579
test 5 : n = 12481632
test 6 : n = 123456789
test 7 : n = 9876543210
test 8 : n = 123123123123
test 9 : n = 123456789123456789
test 10: n = 98765432100123456789
test 10 đến 20 chữ số. Nếu viết từ 1->98765432100123456789 thì sao đủ?
Xe nâng người Boom lift được Công Ty TNHH Trung thành phân phối chính hãng tại khu vực phía Bắc. Với chi phí đầu tư ban đầu thấp hơn rất nhiều so với các loại xe nâng dầu , xe nâng động cơ loại...
Xe nâng người được trung thành nhập khẩu giá tốt