| Ai giúp jum` câu b đề 1 ca 2 zới ?? | |
| Tác giả | Thông điệp |
---|
fly1571988 Nhất Đại Công Thần
Tổng số bài gửi : 117 Experience : 188 Danh Vọng : 3
| Tiêu đề: Ai giúp jum` câu b đề 1 ca 2 zới ?? Mon Aug 30, 2010 10:24 pm | |
| a) S=1*2*3 + 2*3*4 + 3*4*5+....+n*(n+1)*(n+2) b) khi S=4324320 thì n=? Tại sao kết quả câu b ra 65 hoài mà trong khi 63 mới đúng #include <stdio.h> void main() { //cau a int i,n; long s=0,tich=1; do { printf("nhap so n nguyen duong: "); scanf("%d",&n); }while (n<0); for (i=1;i<=n;i++) { tich=i*(i+1)*(i+2); s=s+tich; } printf("cau a: Ket qua S = %d\n",s); // cau b long tong=0; i=1; s=0; tich=1; while (tong<=4324320) { tich=i*(i+1)*(i+2); tong=tong+tich; i++; } printf("cau b: so n can tim khi S= 4324320 la %d\n",i); } Tại sao kết quả câu b ra 65 hoài mà trong khi 63 mới đúng |
| | | Phạm Quang Nam (♥_♥) Forever Alone (♥_♥)
Tổng số bài gửi : 705 Experience : 1609 Danh Vọng : 6
| Tiêu đề: Re: Ai giúp jum` câu b đề 1 ca 2 zới ?? Mon Aug 30, 2010 11:03 pm | |
| Hê hê thông cảm, lười đọc bài viết quá. nếu kết quả là 63 thì mình làm đúng bài thi rùi may quá và đây là bài mình đã làm: - Code:
-
#include <stdio.h> #include <conio.h> void main() { int n,i,s; // Cau a: printf("Nhap N: "); scanf("%d",&n); s=0; for(i=1;i<n+1;i++) { s+=i*(i+1)*(i+2); } printf("\nTong S: = %d",s); // Cau b: for(i=1;i<4324320;i++) //hoac thay = can bac 3 cua 4324320 thi chay tot hon { s+=i*(i+1)*(i+2); if(s==4324320) break; } printf("\nVoi S = 4324320 thi N:= %d",i); getch(); } |
| | | buzztran Tri Phủ
Tổng số bài gửi : 55 Experience : 61 Danh Vọng : 0
| Tiêu đề: Re: Ai giúp jum` câu b đề 1 ca 2 zới ?? Tue Aug 31, 2010 8:32 am | |
| - Admin đã viết:
- Hê hê thông cảm, lười đọc bài viết quá.
nếu kết quả là 63 thì mình làm đúng bài thi rùi may quá
và đây là bài mình đã làm: - Code:
-
#include <stdio.h> #include <conio.h> void main() { int n,i,s; // Cau a: printf("Nhap N: "); scanf("%d",&n); s=0; for(i=1;i<n+1;i++) { s+=i*(i+1)*(i+2); } printf("\nTong S: = %d",s); // Cau b: [b] for(i=1;i<4324320;i++) [/b] //hoac thay = can bac 3 cua 4324320 thi chay tot hon { s+=i*(i+1)*(i+2); if(s==4324320) break; } printf("\nVoi S = 4324320 thi N:= %d",i); getch(); } cái đoạn này thấy vô lí, "i" lúc này là biến chạy đến "n",đâu thể cho nó chạy tới "tổng" đc. nhìn đoạn này thì biết sai chỗ nào rồi.Đáng lẽ dùng IF thì đúng hơn dùng While // cau b s=0; for(i=1;i<100;i++) // đoạn này mình gán cho 1 số bất kỳ nào đó để i có thể chạy tới.chứ ko bắt buộc là = 4324320 mà Admin đã làm. { s+=i*(i+1)*(i+2); if(s==4324320) break; } printf("\nVoi S = 4324320 thi N:= %d",i); getch(); } ===> còn nếu theo dùng lệnh while thì mình đã tìm ra câu trả lời : // cau b long tong=0; i=1; s=0; tich=1; do { tich=i*(i+1)*(i+2); tong=tong+tich; i++; }while (tong<=4324320)printf("cau b: so n can tim khi S= 4324320 la %d\n",i); } *** bùn ghê,vậy mà mình ko tìm ra trong lúc thi.hix hix |
| | | mmmmaabb012 Mod
Tổng số bài gửi : 160 Experience : 260 Danh Vọng : 5
| Tiêu đề: Re: Ai giúp jum` câu b đề 1 ca 2 zới ?? Tue Aug 31, 2010 9:23 am | |
| #include <stdio.h> void main(){ long n,s,i,t,flag; printf("nhap vao so n : "); scanf("%d",&n); s=0; for(i=1;i<=n;i++) s=s+(i*(i+1)*(i+2)); printf("Dap so =%d\n",s); t=0;flag=1; for(i=1;((i<=4324320)&&(flag));i++) { t=t+(i*(i+1)*(i+2)); if(t==4324320) { printf("So co tong bang 4324320 la:%d",i); flag=0;} } } |
| | | buzztran Tri Phủ
Tổng số bài gửi : 55 Experience : 61 Danh Vọng : 0
| Tiêu đề: Re: Ai giúp jum` câu b đề 1 ca 2 zới ?? Tue Aug 31, 2010 9:39 am | |
| - mmmmaabb012 đã viết:
- #include <stdio.h>
void main(){ long n,s,i,t,flag; printf("nhap vao so n : "); scanf("%d",&n); s=0; for(i=1;i<=n;i++) s=s+(i*(i+1)*(i+2)); printf("Dap so =%d\n",s); t=0;flag=1; for(i=1;((i<=4324320)&&(flag));i++) { t=t+(i*(i+1)*(i+2)); if(t==4324320) { printf("So co tong bang 4324320 la:%d",i); flag=0;} } } khoái thanh flag quá nhỉ |
| | | Phạm Quang Nam (♥_♥) Forever Alone (♥_♥)
Tổng số bài gửi : 705 Experience : 1609 Danh Vọng : 6
| Tiêu đề: Re: Ai giúp jum` câu b đề 1 ca 2 zới ?? Tue Aug 31, 2010 9:44 am | |
| i là 1 biến chạy, nó muốn chạy đến đâu là tùy người viết chứ ko sai, vì trong câu lênh for thứ 2, đã gán i=1 rùi nên i sẽ trở lại chạy từ đầu. Nêu chạy tới tổng chỉ mất time chạy chương trình chứ ko sai dc
Thực ra cho i chạy đến 4324320 "for(i=1;i<4324320;i++)" của mình làm là 1 câu lệnh ... tồi, gây chậm máy ... nhưng chắc chắn đúng
Vì ko bít kết quả bao nhiêu nên ko thể cho for(i=1;i<100;i++) được, trừ khi tính trước được như vậy
Trong lúc làm, vì thời gian cấp bách, chỉ cần làm đúng kết quả, ko cần hình thức, nên chỉ dám đảm bảo luôn luôn < căn bậc 3 của 4324320 dựa vào đoạn n*(n+1)*(n+2) tương đương n*n*n (nghĩa là n mũ 3) + 3n <-- và mình đã làm theo cách này. Còn post lên cái dễ hỉu nhất
Còn cái Flag .... như của LP làm thì ... ko bít xài hehe |
| | | mmmmaabb012 Mod
Tổng số bài gửi : 160 Experience : 260 Danh Vọng : 5
| Tiêu đề: Re: Ai giúp jum` câu b đề 1 ca 2 zới ?? Tue Aug 31, 2010 10:07 am | |
| - Admin đã viết:
- i là 1 biến chạy, nó muốn chạy đến đâu là tùy người viết chứ ko sai, vì trong câu lênh for thứ 2, đã gán i=1 rùi nên i sẽ trở lại chạy từ đầu. Nêu chạy tới tổng chỉ mất time chạy chương trình chứ ko sai dc
Thực ra cho i chạy đến 4324320 "for(i=1;i<4324320;i++)" của mình làm là 1 câu lệnh ... tồi, gây chậm máy ... nhưng chắc chắn đúng
Vì ko bít kết quả bao nhiêu nên ko thể cho for(i=1;i<100;i++) được, trừ khi tính trước được như vậy
Trong lúc làm, vì thời gian cấp bách, chỉ cần làm đúng kết quả, ko cần hình thức, nên chỉ dám đảm bảo luôn luôn < căn bậc 3 của 4324320 dựa vào đoạn n*(n+1)*(n+2) tương đương n*n*n (nghĩa là n mũ 3) + 3n <-- và mình đã làm theo cách này. Còn post lên cái dễ hỉu nhất
Còn cái Flag .... như của LP làm thì ... ko bít xài hehe biến cờ là biến làm cho i không cần chạy đến 4324320 mà chỉ cần chạy đến đúng điều kiện là dừng .việc khai báo i chạy đến 4324320 là để tránh không có sơ xuất trong quá trình xét...để giảm đi dư thừa trong phép tính nên gắn flag vào chứ không có ý định gì... có người sử dụng return có người sử dụng break và sai biến đ++ thật ra cái đ cũng là 1 flag nhưng flag này chuyển động không cố định như ý muốn |
| | | buzztran Tri Phủ
Tổng số bài gửi : 55 Experience : 61 Danh Vọng : 0
| Tiêu đề: Re: Ai giúp jum` câu b đề 1 ca 2 zới ?? Tue Aug 31, 2010 10:38 am | |
| - Admin đã viết:
- i là 1 biến chạy, nó muốn chạy đến đâu là tùy người viết chứ ko sai, vì trong câu lênh for thứ 2, đã gán i=1 rùi nên i sẽ trở lại chạy từ đầu. Nêu chạy tới tổng chỉ mất time chạy chương trình chứ ko sai dc
Thực ra cho i chạy đến 4324320 "for(i=1;i<4324320;i++)" của mình làm là 1 câu lệnh ... tồi, gây chậm máy ... nhưng chắc chắn đúng
Vì ko bít kết quả bao nhiêu nên ko thể cho for(i=1;i<100;i++) được, trừ khi tính trước được như vậy
Trong lúc làm, vì thời gian cấp bách, chỉ cần làm đúng kết quả, ko cần hình thức, nên chỉ dám đảm bảo luôn luôn < căn bậc 3 của 4324320 dựa vào đoạn n*(n+1)*(n+2) tương đương n*n*n (nghĩa là n mũ 3) + 3n <-- và mình đã làm theo cách này. Còn post lên cái dễ hỉu nhất
Còn cái Flag .... như của LP làm thì ... ko bít xài hehe thì mình ko nói bạn sai,nhưng thấy vẫn còn chưa hoàn thiện,mới đọc vẫn còn hơi khó hỉu.vì nó bao gồm 2 lệnh For và IF.Gói gọn theo cách mình thì nó đơn giản và dễ hỉu,dù sao cũng biết thêm 1 cách.Thanks all. |
| | | buzztran Tri Phủ
Tổng số bài gửi : 55 Experience : 61 Danh Vọng : 0
| Tiêu đề: Re: Ai giúp jum` câu b đề 1 ca 2 zới ?? Tue Aug 31, 2010 10:42 am | |
| - Trích dẫn :
biến cờ là biến làm cho i không cần chạy đến 4324320 mà chỉ cần chạy đến đúng điều kiện là dừng .việc khai báo i chạy đến 4324320 là để tránh không có sơ xuất trong quá trình xét...để giảm đi dư thừa trong phép tính nên gắn flag vào chứ không có ý định gì... có người sử dụng return có người sử dụng break và sai biến đ++ thật ra cái đ cũng là 1 flag nhưng flag này chuyển động không cố định như ý muốn đơn giản hơn là các câu lệnh trong bài này như For,While ko có sơ xuất gì hết,do mình chưa hỉu hết tính chất của nó.Làm theo Tuấn Osin thì cũng là 1 cách,nhưng khó hỉu cho ng viết,và chỉnh sửa cũng khó. |
| | | nghthien Tri Phủ
Tổng số bài gửi : 61 Experience : 86 Danh Vọng : 4
| Tiêu đề: Re: Ai giúp jum` câu b đề 1 ca 2 zới ?? Wed Sep 08, 2010 2:08 am | |
| - fly1571988 đã viết:
- a) S=1*2*3 + 2*3*4 + 3*4*5+....+n*(n+1)*(n+2)
b) khi S=4324320 thì n=? Tại sao kết quả câu b ra 65 hoài mà trong khi 63 mới đúng
#include <stdio.h> void main() { //cau a int i,n; long s=0,tich=1; do { printf("nhap so n nguyen duong: "); scanf("%d",&n); }while (n<0); for (i=1;i<=n;i++) { tich=i*(i+1)*(i+2); s=s+tich; } printf("cau a: Ket qua S = %d\n",s); // cau b long tong=0; i=1; s=0; tich=1; while (tong<=4324320) { tich=i*(i+1)*(i+2); tong=tong+tich; i++; } printf("cau b: so n can tim khi S= 4324320 la %d\n",i); } Tại sao kết quả câu b ra 65 hoài mà trong khi 63 mới đúng Vấn đề tại sao kết quả câu b của bạn ra 65 vì vòng lặp đến khi tong=4324320 thì i = 63 sau đó chạy xuống câu i++ nên i = 64, sau đó chạy lên điều kiện vì bạn để là tong<=4324320 suy ra điều kiện hợp lệ nên vòng lặp tiếp tục chạy vì vậy tong tiếp tục cộng thêm và chạy đến dòng i++ suy ra i tăng lên 65, trở lại điều kiện tong đã lớn hơn 4324320 nên thoát khỏi vòng lặp, xuống dòng in thì ra i=65. |
| | | Sponsored content
| Tiêu đề: Re: Ai giúp jum` câu b đề 1 ca 2 zới ?? | |
| |
| | | | Ai giúp jum` câu b đề 1 ca 2 zới ?? | |
|
Trang 1 trong tổng số 1 trang | |
| Permissions in this forum: | Bạn không có quyền trả lời bài viết
| |
| |
| |