输入一个整数n,表示要分解为n项(n<12)
输出分解后的单位分数项,中间用一个空格分开。
每种分解法占用一行,行间的顺序按照分母从小到大排序。
例如,
输入:
4
程序应该输出:
1/2 1/3 1/8 1/24
1/2 1/3 1/9 1/18
1/2 1/3 1/10 1/15
1/2 1/4 1/5 1/20
1/2 1/4 1/6 1/12
再例如,
输入:
5
程序应该输出:
1/2 1/3 1/12 1/21 1/28
1/2 1/4 1/6 1/21 1/28
1/2 1/4 1/7 1/14 1/28
1/2 1/4 1/8 1/12 1/24
1/2 1/4 1/9 1/12 1/18
1/2 1/4 1/10 1/12 1/15
1/2 1/5 1/6 1/12 1/20
1/3 1/4 1/5 1/6 1/20
请严格按要求输出,不要画蛇添足地打印类似:“请您输入…” 的多余内容。
class Main {
public static
void f(int[] p, int n, int fm, int end) {
if (n == end) {
int sum = 1;
int sum1 = 0;
for (int i = 0;
i < n; i++) {
sum *= p[i];
}
for (int j = 0;
j < n; j++) {
sum1
+=sum/p[j];
}
/控制输出/
if (sum ==
sum1) {
for (int i = 0;
i < n; i++) {
System.out.print(“1/”
+ p[i] + " ");
}
System.out.println();
}
} else {
for (int i =
fm; i < 30; i++) {
p[end] = i;
f(p, n,
i+1,end+1);
}
}
}
public static
void main(String[] args) {
Scanner input =
new Scanner(System.in);
int n =
input.nextInt();
int[] p = new
int[n];
f(p,n,2,0);
}
}