![]() |
|
|||||||
|   |
![]() |
|
|
Ðiều Chỉnh | Xếp Bài |
|
|
#1 |
|
Búa Đá
![]() Tham gia: Mar 2008
Đến từ: Huế
Bài: 67
VZD: 1.012
Điểm: 2/2 bài viết
|
mình tìm các số hoàn hảo từ 1..1000
mình làm như sau : program soHoanHao; uses crt; const n=1000; var i,s : integer; begin s:=0; for i:=1 to n-1 do begin s:=s+i; if s = n then writeln(s) else write(''); >> viết thế này để hko in ra màn hình dài dòng end; readln; end; em viết thế này sao mà nó chả in ra màn hình cái chi cả giúp em có nên ghi bài làm ở đây hay UP lên host if Up lên host then trình bày rõ ràng hơn nhiều |
|
|
|
|
|
#2 |
|
Rìu Sắt Đôi
![]() |
Nhìn lại đi n là hằng số bằng 1000 thì nó đâu phải là số hoàn hảo mà chẳng không hiện gì.
Cho nhập số n đi chứ. program soHoanHao; uses crt; const n=1000; var i,s,k : integer; begin s:=0; for k:=1 to 1000 begin for i:=1 to n-1 do begin s:=s+i; if s = k then writeln(s) end; end; readln; end; |
|
|
|
|
|
#3 |
|
Rìu Sắt
![]() Tham gia: Jan 2008
Bài: 177
VZD: 2.911
Điểm: 76/26 bài viết
|
program soHoanHao;
uses crt; const n=1000; var i,s,k : integer; begin s:=0; for k:=1 to 1000 begin for i:=1 to n-1 do begin s:=s+i; if s = k then writeln(s); if s > k then break; {bạn nên cho cái break vào, chương trình sẽ chạy nhanh hơn với N rất lớn, 1000000 chẳng hạn} end; end; readln; end;
__________________
Let's press and all best things will come to you ![]() Life ===>> Football. Football ===>> MANCHESTER UNITED http://manutd.com.vn/ |
|
|
|
|
|
#4 | |
|
Búa Đá
![]() Tham gia: Mar 2008
Đến từ: Huế
Bài: 67
VZD: 1.012
Điểm: 2/2 bài viết
|
Trích:
|
|
|
|
|
|
|
#5 |
|
Gà Con
![]() Tham gia: Jan 2008
Bài: 4
VZD: 410
Điểm: 7/1 bài viết
|
* Bạn làm sai mất rồi !
* Trước tiên, mình xin nhắc lại định nghĩa số hoàn hảo: là số có tổng các ước (ngoại trừ chính nó) bằng số đó. Vd: Số 6 có 3 ước số (trừ chính số 6) là 1, 2, 3 và 1+ 2 + 3= 6 Vậy số 6 là số hoàn hảo. * Muốn kiểm tra 1 số có phải là số hoàn hảo hay không bạn phải cộng tất cả các ước số của nó lại. Chuơng trình của bạn có thể viêt lại như sau: Program So_hoan_hao; Uses Crt; Const n= 1000; { Kiểm tra số n có phải lá Số hoàn hảo hay không ? } Var s, i: LongInt; BEGIN s:= 1; For i:= 2 To n- 1 Do If n mod i= 0 Then s:= s+ i; If n= s Then WriteLn('.............') Else WriteLn('.............'); END. |
|
|
|
|
|
#6 |
|
Búa Đá
![]() Tham gia: Jan 2008
Bài: 52
VZD: 658
Điểm: 5/5 bài viết
|
Tìm các số hoàn hảo từ 1 đến 1000 chứ ko phải là kiểm tra số n=1000 có hoàn hảo hay ko. Vậy phải cho k chạy từ 1 đến 1000 rồi kiểm tra số k đó có hoàn hảo hay ko.
For k:=2 to 1000 do begin s:=0; {phải gán s=0 chỗ này vì sau mỗi lần thử giá trị cho k, giá trị của s đã thay đổi} For i:=1 to k-1 do If k mod i = 0 then s:=s+i; If s=k then writeln(s); end; |
|
|
|
|
|
#7 |
|
Rìu Sắt
![]() Tham gia: Jan 2008
Bài: 177
VZD: 2.911
Điểm: 76/26 bài viết
|
Chương trình chuẩn như sau:
Code:
program Tim_so_hoan_hao;
uses Crt;
const
max = 1000;
var
N, i, sum, mark : integer;
BEGIN
clrscr;
writeln('Cac so hoan hao <1000 la : ');
for N:=1 to max do
begin
sum := 0;
mark := 0;
for i:=(N div 2) downto 1 do
begin
if (N mod i = 0) then sum := sum + i;
if sum>=N then
begin
mark := i;
break;
end;
end;
if mark=1 then writeln(N);
end;
readln;
END.
__________________
Let's press and all best things will come to you ![]() Life ===>> Football. Football ===>> MANCHESTER UNITED http://manutd.com.vn/ thay đổi nội dung bởi: vietanh279, 13-04-2008 lúc 11:31. |
|
|
|
|
|
#8 |
|
Búa Đá
![]() Tham gia: Mar 2008
Đến từ: Huế
Bài: 67
VZD: 1.012
Điểm: 2/2 bài viết
|
đây là bài của em nó chỉ hiện ra màn hình màu đen thôi |
|
|
|
|
|
#9 |
|
Búa Gỗ Đôi
![]() Tham gia: Mar 2008
Bài: 44
VZD: 578
Điểm: 0/0 bài viết
|
bay gio gia su du lie cho len toi bien extended thi sao
cach nay khong on |
|
|
|
|
|
#10 |
|
Búa Gỗ Đôi
![]() Tham gia: Mar 2008
Bài: 44
VZD: 578
Điểm: 0/0 bài viết
|
bai nay dung qui hoach dong tot nhat
|
|
|
|
|
|
#11 |
|
Búa Đá
![]() Tham gia: Jan 2008
Bài: 52
VZD: 658
Điểm: 5/5 bài viết
|
Bài làm của em sai 3 chỗ.
Thứ nhất là em chưa gán giá trị cho n, nghĩa là n đang bằng 0, vậy thì vòng For của em ko dùng được. Thứ hai là khi cho biến i chạy, sau mỗi lần như thế giá trị của tổng s ko còn là 0 nữa, vòng chạy sau sẽ cộng tiếp các ước số vào tổng s trước đó dẫn đến giá trị s em tính được là sai,em phải cho s:=0 vào trong vòng For. Thứ ba,em phải cho i chạy hết đến n-1 để tìm tất cả các ước số cộng lại thành tổng s cuối cùng, chứ ko phải cộng cho đến khi nào s=n thì thôi, như thế là cộng thiếu ước số của n. Chị sửa lại như thế này em thử xem sao: Code:
Program sohoanhao;
uses crt;
Var i,n,s,dem:integer;
begin
writeln('Cac so hoan hao tu 1 den 1000 la: ');
for n:=2 to 1000 do {kiểm tra lần lượt các số từ 2 đến 1000, nếu em muốn tìm các số hoàn hảo trong khoảng khác thì chỉ cần thay ở đây}
begin
s:=0;
For i:=1 to n-1 do
If (n mod i) = 0 then s:=s+i;
If s=n then
begin
writeln(s);
dem:=dem+1;
end;
end;
If dem=0 then write('Ko co so hoan hao')
else write('Co tat ca ',dem,' so hoan hao tu 1 den 1000')
end.
thay đổi nội dung bởi: LamHoa, 14-04-2008 lúc 22:29. |
|
|
|
| Thành viên đã cám ơn bài viết này của LamHoa: | so_0_lanh_lung (15-04-2008) |
|
|
#12 |
|
Búa Đá
![]() Tham gia: Mar 2008
Đến từ: Huế
Bài: 67
VZD: 1.012
Điểm: 2/2 bài viết
|
tuyệt vời..cám ơn đã giúp em
![]() cho em hỏi luôn làm sao mà để code vào ô vuông như anh vậy...em viết ra thì nó toàn thẳng hàng với nhau..không rõ ràng |
|
|
|
|
|
#13 |
|
Búa Đá
![]() Tham gia: Mar 2008
Đến từ: Huế
Bài: 67
VZD: 1.012
Điểm: 2/2 bài viết
|
em chưa hiểu cái
for i:=(N div 2) downto 1 do của anh vietanh279 vì nó là lấy phần dư mà |
|
|
|
|
|
#14 |
|
Búa Đá
![]() Tham gia: Mar 2008
Đến từ: Huế
Bài: 67
VZD: 1.012
Điểm: 2/2 bài viết
|
anh LamHoa và anh Vietanh ơi có thể cho em mail được không.. em xin để mong được học hỏi chút ít..những bài em ko hiểu em có thể mail cho các anh không .. em cám ơn
|
|
|
|
|
|
#15 |
|
Búa Đá Đôi
![]() Tham gia: Feb 2008
Bài: 99
VZD: 1.109
Điểm: 5/5 bài viết
|
bác dung freepas đi trông cho nó đẹp
|
|
|
|