题目描述
本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。
W星球的长老交给小明一个任务: 1,2,3⋯16 这 16 个数字分为两组。
要求:这两组数字的和相同,并且,两组数字的平方和也相同,并且,两组数字的立方和也相同。
请你利用计算机的强大搜索能力解决这个问题。 并输出 1 所在的那个分组的所有数字。
这些数字要从小到大排列,两个数字间用一个空格分开。 即类似: 1 4 5 8... 这样的答案。
运行限制
- 最大运行时间:1s
- 最大运行内存: 128M
import java.util.Scanner;
public class Main {
/*static int[] biaoji=new int[17];
static int count=0;*/
public static void main(String args[]) {
/*dfs(0);
}
public static void dfs(int x){
if(x==8){
if(count==0&&check(biaoji)){
count++;
for(int i=1;i<=16;i++){
if(biaoji[i]==1){
System.out.printf(i+" ");
}
}
}
return;
}
for(int i=1;i<=16;i++){
if(biaoji[i]==0){
biaoji[i]=1;
dfs(x+1);
biaoji[i]=0;
}
}
}
public static boolean check(int[] biaoji){
int sum1=0,sum2=0,sum3=0;
int sum11=0,sum22=0,sum33=0;
for(int i=1;i<=16;i++){
if(biaoji[i]==1){
sum1+=i;
}
else{
sum11+=i;
}
}
if(sum1==sum11){
for(int i=1;i<=16;i++){
if(biaoji[i]==1){
sum2+=i*i;
}
else{
sum22+=i*i;
}
}
if(sum2==sum22) {
for (int i = 1; i <= 16; i++) {
if (biaoji[i] == 1) {
sum3 += i * i * i;
} else {
sum33 += i * i * i;
}
}
if (sum3 == sum33) {
return true;
} else {
return false;
}
}
else{
return false;
}
}
else{
return false;
}*/
System.out.printf("1 4 6 7 10 11 13 16");
}
}