Kaisuka Trung Sĩ
Tổng số bài gửi : 42 Age : 34 Đến từ : Somewhere I Belong... Registration date : 15/11/2008
| Tiêu đề: Gợi ý thuật toán giải bài tập tuần 4 !! Sat Nov 15, 2008 7:23 pm | |
| Sau đây là một số gợi ý của mình để giải quyết bài tập tuần 4:
- Bài này dùng 1 hàm Switch là ok hết
- Bài này các bạn phải sử dụng 1 vòng lập while,mình lấy số cần đếm chia lần lượt cho 10 mũ x,hàm dừng khi phép chia không thực hiện được và mỗi lần sau khi chia thì ta đặt 1 biến đếm là N++(gán N =1 vì luôn có giá trị hàng đơn vị).Ví dụ: số 1234 thì sẽ chia lần lượt cho 10 100 1000 thì phép chia 10000 không thực hiện được thì hàm dừng.Các bạn thêm 1 hàm IF phía dưới cho trường hợp nhập số 0.( có thể dùng hàm abs() để lấy trị tuyệt đối của số cần nhập,như vậy khi nhập số âm thì nó vẫn đếm tốt).Đây là code ví dụ:
- Code:
-
while(abs(p)>=1) { p=n/pow(10,i); N++; } - Bài này thì áp dụng cách đếm của bài trên,kết hợp với 1 chút tư duy các bạn sẽ làm ra thôi ^^
- Bài này mình có 1 đọan code cho các bạn luôn vì mình cũng chẳng biết giải thích sao cho các bạn hiểu nữa ( thông cảm dốt Văn ToT):
- Code:
-
while (n != 0 && m != 0) if (n>m) n -= m; else m -= n; if (n == 0) uscln= m; else uscln= n; Đó là đoạn tính USCLN.Còn tính BSCLN thì các bạn lấy 2 số nhập nhân với nhau rồi chia cho USCLN là ok.
- Bài này mình đang nghiên cứu sẽ update sau cho các bạn cách giải tối ưu nhất.
- Bài này thì quá dễ rồi các bạn tự làm nhé.
- Số chính phương là số lấy được căn bậc chẵn.(ở đây đề muốn hỏi là căn bậc 2).dùng 1 hàm while thì có thể tìm ra số chính phương nhỏ hơn hoặc lớn hơn n.
- Viết hàm tính giai thừa trước giai thừa của một số các bạn tính bằng hàm for,với N=N(N-1)( hoặc cách viết khác là N*=N).
viết hàm lập cho nó chạy các giá trị N.Cái độ chính xác là điều kiện để chặn N.
- Tương tự bài số 8.
Mọi thắc mắc các bạn cứ post bài hỏi sẽ có người trả lời,còn không ai trả lời thì tự đi hỏi thầy nhá !!! | |
|
Thinh_xuan Binh Nhì
Tổng số bài gửi : 1 Registration date : 15/11/2008
| Tiêu đề: Re: Gợi ý thuật toán giải bài tập tuần 4 !! Sat Nov 15, 2008 7:52 pm | |
| Đây là cách để chương trình hỏi bạn có muốn làm tiếp không dùng hàm +if VD bài số 1 nhập 1 số n xem số đó có bao nhiêu chữ số - Code:
-
{ do { printf("\nBan co muon tiep tuc khong?-C\K\n"); ch=getch(); if(ch=='c'||ch=='C');\\*Nếu bấm chữ 'c' hoặc 'C' thì chương trình tiếp tục chạy*\\ else break; } while(1); }
Bạn nào có ý kiến thì cứ pm nha Kai:Bạn không nên để cả đoạn code ra như vậy,như vậy sẽ làm bà con ỷ lại mà chép không tốt cho việc học.Mong bạn rút kinh nghiệm.Thân !!(mình chỉ để lại đoạn code nhập lại) | |
|