解题思路:
注意事项:
如果看的话建议复制粘贴放到eclipse后ctrl+shit+f键整理代码。这样就看的清楚了。
在这里我写的代码都是有格式的,但是系统把代码格式变成默认的,看的话不方便。
参考代码:
package com.cx;
import java.util.Scanner;
public class Demo1017 {
public static void main(String[] args) {
// 創建Scanner的對象
Scanner sc1 = new Scanner(System.in);
// sc就可以直接使用对象方法nextLine,这样就能接受控制台输入的字符串
int a = sc1.nextInt();
// 直接调用函数,这样字符串就能传入方法,然后进行判断
function11(a);
}
// 用这个函数找出符合条件的数字,找到后调用function10
public static void function11(int a) {
for (int i = 2; i <= a; i++) {
int c = 0;
for (int n = 1; n < a; n++) {
if (i % n == 0) {
c = c + n;
}
if (i == c) {
function10(i);
System.out.println();
break;
}
}
}
}
// 将符合条件的数字带入这个函数,打印出需要的格式
public static void function10(int a) {
System.out.print(a + " its factors are ");
for (int n = 1; n < a; n++) {
if (a % n == 0) {
System.out.print(n + "\t");
}
}
}
}
0.0分
2 人评分
第二个if不应该在同一个for循环里面,这样你会输出一个24的结果,24 its factors are 1 2 3 4 6 8 12 ,虽然前面几个加起来确实会等于24然后判断结束break,但是却没有加上12导致你输出和判断的是不一样的结果。 并且没有注意格式,不要加制表符\t,空格就好,不然输出也是会很奇怪的