-
03-22-2015, 07:00 AM #1Junior Member
- Ngày tham gia
- May 2015
- Bài viết
- 0
Giúp em cái bài này với các bác ạ....
nó như thế này...viết hàm kiểm tra số hoàn hảo trong mảng...hàm đếm số hoàn hảo...
em đã làm mà nó kiểm tra không được
hàm kiểm tra như thế này mà nó không kiểm tra được
public static boolean ktshh(int[] a, int n) {
int s = 0;
for (int i=0;i<n;i++){
for (int j = 1; j <= a / 2; j++) {
if (a % j == 0)
s += j;
}
if (s == a) {
return true;
}
}
return false;
}
-
03-23-2015, 07:00 AM #2Junior Member
- Ngày tham gia
- Apr 2015
- Bài viết
- 0
a là một mảng sao bạn lại %j rồi lại s==a? giải thuật của bạn là gì?
-
03-24-2015, 07:00 AM #3Junior Member
- Ngày tham gia
- Jan 2015
- Bài viết
- 0
tai
Gửi bởi thethanh1207
Mã:import java.io.*; import java.util.*; import java.lang.*; public class mang { public static int[] a; public int nhap() { int n; do { system.out.print("- moi ban nhap so phan tu trong mang(n > 0): "); scanner num = new scanner(system.in); n = num.nextint(); } while (n < 0); return n; } public void nhapmang(int[] a) { scanner in = new scanner(system.in); for (int i = 0; i < a.length; i++) { system.out.print("a[" + i + "] = "); a[i] = in.nextint(); } } public static boolean ktshh(int x) { int s = 0; for (int j = 1; j <= math.sqrt(x); j++) { if (x % j == 0) s += j; } if (s == x) { return true; } return false; } public static int demshh(int[] a) { int dem = 0; for (int i = 0; i < a.length; i++) { if (ktshh(a[i])) dem++; } return dem; } public static void inshh(int[] a) { for (int i = 0; i < a.length; i++) { if (ktshh(a[i])) system.out.print(a[i] + " "); } } public static void main(string[] args) { mang mg = new mang(); scanner nh = new scanner(system.in); int n = mg.nhap(); int a[] = new int[n]; system.out.println("- moi ban nhap cac phan tu trong mang: "); mg.nhapmang(a); system.out.println("- co " + demshh(a) + " so hoan hao"); mg.inshh(a); } } }
-
03-24-2015, 07:00 AM #4Junior Member
- Ngày tham gia
- Apr 2016
- Bài viết
- 0
có một số vấn đề trong chương trình của bạn.
hướng đối tượng mà bạn toàn khai báo static thì lại quay về lập trình cấu trúc mất rồi.
có biến bạn khai báo nhưng k sử dụng: scanner nh = new scanner(system.in);
bạn khai báo static nhưng lại gọi bằng đối tượng chứ không gọi bằng tên lớp: mg.inshh(a);
bạn không close() scanner.
còn về thuật toán thì bạn bị sai:
Mã nguồn PHP:[color=#000000]
[/color][color=#007700]for ([/color][color=#0000bb]int j [/color][color=#007700]= [/color][color=#0000bb]1[/color][color=#007700]; [/color][color=#0000bb]j [/color][color=#007700]<= [/color][color=#0000bb]math[/color][color=#007700].[/color][color=#0000bb]sqrt[/color][color=#007700]([/color][color=#0000bb]x[/color][color=#007700]); [/color][color=#0000bb]j[/color][color=#007700]++) {if ([/color][color=#0000bb]x [/color][color=#007700]% [/color][color=#0000bb]j [/color][color=#007700]== [/color][color=#0000bb]0[/color][color=#007700])[/color][color=#0000bb]s [/color][color=#007700]+= [/color][color=#0000bb]j[/color][color=#007700];}[/color]
Căn hộ cao cấp TT AVIO được xây dựng bởi Công ty Cổ phần Đầu tư TT Capital biểu tượng đẳng cấp sống đẳng cấp dịch vụ đẳng cấp. dự án TT AVIO biểu tượng đẳng cấp kênh nhiều lợi thoải mái thư giãn....
TT AVIO Chung cư cao cấp tràn ngập ánh nắng công viên rộng