Go Back   VN-Zoom Forum > Chia sẻ kiến thức > Lập trình > Pascal | C/C++

 



Trả lời Gửi Ðề Tài Mới
 
Ðiều Chỉnh Xếp Bài
Old 29-03-2008, 17:04   #1
Búa Gỗ
 
hungvttk's Avatar
 
Tham gia: Mar 2008
Bài: 15
VZD: 574
Điểm: 0/0 bài viết
Question giup e, giai bai c nay zoi

nhap 2 so nguyen co tu 30 den 100 so .sau do thuc hiẻn phep cong va phep nhan.ai giai giup em voi


------ Đề nghị các bạn hãy gõ dấu nhé, đừng Post bài không dấu như vậy -------

thay đổi nội dung bởi: seudaudovn, 01-04-2008 lúc 12:47
hungvttk vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 31-03-2008, 23:33   #2
Gà Con
 
hellangel2907's Avatar
 
Tham gia: Mar 2008
Bài: 2
VZD: 354
Điểm: 0/0 bài viết
Default

bai nay ma cung can giup ha.dung vong lap for la dc ma ban
hellangel2907 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 01-04-2008, 16:53   #3
Rìu Vàng
 
banana729's Avatar
 
Tham gia: Dec 2007
Đến từ: An Giang
Bài: 734
VZD: 13.026
Điểm: 202/120 bài viết
Send a message via Yahoo to banana729
Default

cái này dễ mà
nhưng bạn nói
Trích:
nhap 2 so nguyen co tu 30 den 100 so .sau do thuc hiẻn phep cong va phep nhan.ai giai giup em voi
nghĩa là 2 số thuộc khoản đó hả VD : 35 và 55
__________________
<<<Học hành như cá kho tiêu>>>
<<Kho nhiều thì mặn học nhiều thì NGU>>>
Nếu thấy bài mình hay thì nhấn CÁm ơn là được rùi

------------------------
MAIL CỦA UI ĐÓ
bananaoh729@gmail.com
HƯỚNG DẪN SỬ DỤNG DIỄN ĐÀN
Mời các bạn vào đây chơi
banana729 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 01-04-2008, 18:33   #4
Búa Gỗ
 
hungvttk's Avatar
 
Tham gia: Mar 2008
Bài: 15
VZD: 574
Điểm: 0/0 bài viết
Default

ec.may anh hok giai giup con noi deu a.hom nay thay em giai thay loang ngoang lam.thay dung den ca chuỗi nua co .trông hoa cả mắt .
hungvttk vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 01-04-2008, 18:42   #5
Búa Gỗ Đôi
 
tartaros's Avatar
 
Tham gia: Mar 2008
Bài: 35
VZD: 1.443
Điểm: 2/2 bài viết
Default

ghi đề kĩ lại chút đi...đề hơi khó hiểu...nếu đây là bản sao(ko thất bản) thì đề mơ hồ quá...
tartaros vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 08-04-2008, 18:19   #6
Rìu Sắt Đôi
 
trimitu's Avatar
 
Tham gia: Jan 2008
Bài: 214
VZD: 4.533
Điểm: 96/57 bài viết
Talking

Trích:
hungvttk View Post
nhap 2 so nguyen co tu 30 den 100 so .sau do thuc hiẻn phep cong va phep nhan.ai giai giup em voi


------ Đề nghị các bạn hãy gõ dấu nhé, đừng Post bài không dấu như vậy -------
Cái này mình biết , bài này đúng là phải sử dụng đến chuỗi và đặc biệt là xử lý ký tự ! Hiện tại mình đang bận thi học kỳ nên đưa ra thuật toán các bạn tự viết nhé :

Vì đây là bài toán cộng số lớn ( hay bài toán 1000! cũng tuơng tự ) đòi hỏi số nhập vào được chuyển sang chuỗi sau đó bạn thao tác trên từng ký tự trong chuỗi :
vd 123--> xâu 123
67--> xâu 67 (chú ý nên lưu vào xâu số đó theo thứ tự ngược lại để dễ thao tác !)

sau đó bạn xây dựng 1 hàm để đọc ký tự số chuyển sang giá trị tuơng ứng ( thực ra là 1 hàm switch( C hoặc C++ ) hoặc case of(với pascal))
Mình viết thử với C :
int change(char n)
{ switch(n)
{ case 0: return 0;break;
case 1:return 1;breal;
...
}
}
Phần còn lại tuơng tự bạn tự viết !

Thực chất là hàm này để đổi từng ký tự trong xâu số vừa nãy của bạn về dạng giá trị !
để sau đó bạn thực hiện công việc sau
int a,b,nho=0;
hai biến a,b sẽ nhận giá trị trả về từ hàm change ví dụ a=change('1');
sau lệnh này a=1;
còn biến nhớ để thực hiện công việc sau
Nếu a+b +nho >9 nho=1
nếu không nhớ =0
sau đó bạn xử lý các ký tự kế tiếp trong 2 xâu số nhớ cộng thêm giá trị nhớ này đại lại nên viết thành hàm;
Vd nhé : hai số 67 và 89 sau khi chuyển thành xâu sẽ là hai xâu 76 và 89 ( đảo ngược lại )
Sử dụng hàm change trên để lấy giá trị cho a và b đừng quên rằng nếu hai số lệch nhau bạn phải viết các giá trị 0 tuơng ứng ( 123 và 56 thì phải là 123 và 056))

Tiếp nào bắt đầu chạy vòng lặp a nhận giá trị 7, b nhận giá trị 8
vì (a+b +nho=15 >9 ) nên nho=1,viết (a+b-10) vào xâu tong giá trị !
(nho ban đầu =0)
Sau đó vòng lặp thứ 2 tiếp tục chạy a=6 và b=8
Lại tiếp tục (a+b+nho>9) thì...
Luôn luôn nhớ rằng trong phép cộng 2 số có n chữ số có thể được số có n+1 chữ số nên xâu tong của bạn phải có thể chứa được n+1 ký tự với n là số chữ số lớn nhất trong hai số hạng nhân vào ( trong thí dụ trên n=2)

Phần còn lại dễ rồi đúng không !

Mình không giỏi giải thích nên chắc chắn câu cú trên có phần khó hiểu ! Các bạn cứ thắc mắc để mình sửa dần cho dễ hiểu !( Văn tui kém "nắm" toàn 3 thồi )
trimitu vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 10-04-2008, 15:32   #7
Rìu Sắt Đôi
 
thienthan's Avatar
 
Tham gia: Nov 2007
Bài: 292
VZD: 4.698
Điểm: 85/70 bài viết
Send a message via Yahoo to thienthan
Default

Chương trình này chỉ tính ít chữ số dùng chuỗi cũng được. Nhưng nếu bạn muốn thực hiện các phép toán siêu việt cơ lớn thì nên dùng mảng số có kiểu thích hợp để tận dụng bộ nhớ và hiệu quả.
Mình thực nghiệm khi làm việc với chuỗi càng dài thì nó càng chậm vậy nên khi tính hệ cơ số 10 có thể dùng kiểu byte cũng tạm rồi mỗi ô đó đem lưu hai chữ số.
Bạn cứ cộng bình thường nhé.
Ví dụ:
37298...
a[0]=37
a[1]=29
bạn cứ tách tương tự như vậy do khi ta nhập dạng chuỗi chuyển sang số thao tác cho nhanh

thay đổi nội dung bởi: thienthan, 10-04-2008 lúc 15:34 Lý do: thêm ví dụ
thienthan vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Trả lời Gửi Ðề Tài Mới

Ðiều Chỉnh
Xếp Bài

Quyền Sử Dụng Ở Diễn Ðàn
Bạn không thể gửi chủ đề mới
Bạn không thể gửi trả lời
Bạn không thể gửi file đính kèm
Bạn không thể tự sửa bài viết của bạn

BB code is Mở
Smilies đang Mở
[IMG] đang Mở
HTML đang Tắt
Trackbacks are Tắt
Pingbacks are Tắt
Refbacks are Tắt
Chuyển đến


Múi giờ GMT +7. Hiện tại là 00:17.


Powered by vBulletin® Version 3.7.3
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
vBCredits v1.4 Copyright ©2007 - 2008, PixelFX Studios
Từ điển được cung cấp bởi VDict.com - Hosting được tài trợ bởi Rao vặt 123