取a数组里面的8个数字!让他们结果相加等于1979970

原创 2012年03月30日 21:40:45
public class BaiduDemo00 {


/**
* @author 州伟
* @param args
* int[] a = { 757390, 300725, 864050, 105300, 206640, 16640, 47790,
66560, 70400, 17700, 34220, 24780, 217050, 29250, 83550,
381600, 313440, 109740, 222610, 215830, 157200, 34100, 379500,
189745 };


取a数组里面的8个数字!让他们结果相加等于1979970
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
int[] a = { 757390, 300725, 864050, 105300, 206640, 16640, 47790,
66560, 70400, 17700, 34220, 24780, 217050, 29250, 83550,
381600, 313440, 109740, 222610, 215830, 157200, 34100, 379500,
189745 };
int[] b = queryints(a);
for(int i=0; i<b.length; i++){
System.out.println("第" + (i+1) + "个数是:" + b[i]);
}
System.out.println("和:" + (b[0]+b[1]+b[2]+b[3]+b[4]+b[5]+b[6]+b[7]));
}


private static int[] queryints(int[] a){
for(int j=0; j<a.length; j++){
int[] c = new int[8];

c[0] = a[j]; //第一个数
for(int j1=0; j1<a.length-1;j1++){
if(c[0] != a[j1]){
c[1] = a[j1]; //第二个数
for(int j2=0; j2<a.length-2;j2++){
if(c[0] != a[j2] && c[1] != a[j2]){
c[2] = a[j2]; //第三个数
for(int j3=0; j3<a.length-3;j3++){
if(c[0] != a[j3] && c[1] != a[j3] && c[2] != a[j3]){
c[3] = a[j3]; //第四个数
for(int j4=0; j4<a.length-4;j4++){
if(c[0] != a[j4] && c[1] != a[j4] && c[2] != a[j4] && c[3] != a[j4]){
c[4] = a[j4]; //第五个数
for(int j5=0; j5<a.length-5;j5++){
if(c[0] != a[j5] && c[1] != a[j5] && c[2] != a[j5] && c[3] != a[j5] && c[4] != a[j5]){
c[5] = a[j5]; //第六个数
for(int j6=0; j6<a.length-6;j6++){
if(c[0] != a[j6] && c[1] != a[j6] && c[2] != a[j6] && c[3] != a[j6] && c[4] != a[j6] && c[5] != a[j6]){
c[6] = a[j6]; //第七个数
for(int j7=0; j7<a.length-7;j7++){
if(c[0] != a[j7] && c[1] != a[j7] && c[2] != a[j7] && c[3] != a[j7] && c[4] != a[j7] && c[5] != a[j7] && c[6] != a[j7]){
c[7] = a[j7]; //第七个数
if(c[0]+c[1]+c[2]+c[3]+c[4]+c[5]+c[6]+c[7] == 1979970){
return c;
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
return a;
}

}

相关文章推荐

经典算法学习——快速找出数组中两个数字,相加等于某特定值

这个算法题的描述如下:快速找出一个数组中的两个数字,让这两个数字之和等于一个给定的值。目前我假设数组中的都是各不相等的整数。这道题是我在一次面试中被问到的,由于各种原因,我没回答上来,十分尴尬。其实这...

leetcode-java.T001_TwoSum 给定一个整数数组,找出其中两个数满足相加等于你指定的目标数字

每天坚持刷leetcode----给定一个整数数组,找出其中两个数满足相加等于你指定的目标数字。 package leetcode.T001_TwoSum; import java.util.Ar...

八数码问题: 八数码的游戏 九宫格里面放入8个数字 启发式搜索(1)

八数码问题: 我想大家小时候一定玩过八数码的游戏,如下图:在一个九宫格里面放入8个数字,数字只能上下左右移动,并且只能移动到空白处。通过若干此移动后,能把数字移动成图1.1右方所示图案。   ...

N SUM 数组中任意数相加的结果等于剩下的数相加和

数组中任意数相加的和等于剩下的数相加的和: 比如{1,2,3} 1+2=3,所以是满足条件的。 仔细分析下这样的数组其实首先要满足一下几个条件: 1.数组整个数相加要是偶数。(a+b+c+*...

找出数组3个数字相加为0的组合

  • 2017年04月13日 19:36
  • 800B
  • 下载

[C 语言]将一字符串分割,并将结果保存到数组里面 separate_string_to_array

/* 定义函数:char * strdup(const char *s); 函数说明:strdup()会先用maolloc()配置与参数s 字符串相同的空间大小,然后将参数s 字符串的内容复制到该内存...

每日一道算法题——3个数字相加等于0

3位数字相加等于0题目Given an array S of n integers, are there elements a, b, c in S such that a + b + c = 0? ...

@V@ java代码笔记2010-06-12:java控制台输入各类型类实现;以及判断输入字符串里面是否有数字的两种方法:方法1:转换成字符数组;方法2:正则表达式。

转自  : http://jayxigua.iteye.com/blog/691025    package jay_x_20100612; import java.io.*; impor...

/*算法从9个数中取出3个3位数其中两个3位数相加等于另一个3位数其中每位数字不能重复,c语言怎么实现*/

c++ int 取出[9], 位数[3]{0, 0, 0}, 个数(999999999), 序(0), 幕(100), 取; do {/*这里只设计按顺序截取3个3位数的算法,按我对题目所理解...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:取a数组里面的8个数字!让他们结果相加等于1979970
举报原因:
原因补充:

(最多只允许输入30个字)