「Java学习打卡」 12、求完数、n个a连续相加
程序员文章站
2024-03-15 14:53:48
...
题目一:一个数如果恰好等于它的因子之和,这个数就称为"完数"。例如6=1+2+3.编程求指定范围内的完数。
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
System.out.print("请输入查找范围:");
Scanner scan = new Scanner(System.in);
int c = scan.nextInt();
int a[] = new int[512];
for (int i = 2; i <= c; i++) {
int sum = a[0] = 1;
int k = 0;
for (int j = 2; j <= (i / 2); j++) {
if (i % j == 0) {
sum += j;
a[++k] = j;
}
}
if (i == sum) {
System.out.print(i+"="+ a[0]);
for (int n = 1; n <= k; n++)
System.out.print("+"+ a[n]);
System.out.println();
}
}
return;
}
}
题目二:求s=a+aa+aaa+aaaa+aa…a(n个a)的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加),几个数相加有键盘控制。
程序分析:关键是计算出每一项的值。
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
int s = 0, t;
System.out.println("请输入 a 和 n:");
Scanner scan = new Scanner(System.in);
int a = scan.nextInt();
int n = scan.nextInt();
t = a;
while (n > 0) {
s += t;
a = a * 10;
t += a;
n--;
if (n == 0) {
System.out.print((t / 10));
} else {
System.out.print((t / 10) + "+");
}
}
System.out.println("=" + s);
return;
}
}
下一篇: 求n!(poyhon、java、c)