取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;
}

}

求数组中多个数相加等于某一值

主要思想:排序+两端逼近 内容:排序使得整个数组有序从而可以使用双指针从数组的两端向中间逼近所需要的值7、3Sum 顾名思义,求数组中3个数相加等于某一特定的数自己写了一个似乎是O(n^2) 汗颜...
  • u013033845
  • u013033845
  • 2016年07月29日 19:41
  • 3249

算法10:给一个array和一个target value, 检查array里是否存在两个数之和为target

题目分析这道算法题存在两种情况,数组中是否存在相同的值 1、给定一个整型数组,找出其中的两个数使其和等于指定的值,并返回两个数的数组下标(假定是无序数组,数组元素各不相同) 2、给定一个整型数组,...
  • pplin
  • pplin
  • 2017年03月15日 19:04
  • 426

每日一道算法题——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? ...
  • q1242027878
  • q1242027878
  • 2017年02月11日 14:59
  • 1272

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

c++ int 取出[9], 位数[3]{0, 0, 0}, 个数(999999999), 序(0), 幕(100), 取; do {/*这里只设计按顺序截取3个3位数的算法,按我对题目所理解...
  • xianfajushi
  • xianfajushi
  • 2014年11月01日 20:38
  • 2234

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

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

在一个数组中找到等于某个数的组合

方法1: #include #include #include #include #include #include using namespace std; void getResult(vec...
  • q277055799
  • q277055799
  • 2014年02月20日 15:19
  • 2600

为什么一个字节等于8个比特

数据上1B=8b,我知道具体,但为什么要这样设计?全球通用吗(即全球各地都是这样吗)?   热心网友 昨天看书,不经意间也有了同样的疑问,为什么规定 1 Byte = 8 bits,不是其他数量...
  • qq_26222859
  • qq_26222859
  • 2016年01月21日 21:04
  • 3039

ACM之数论数字根

先来看一道杭电的数字根问题 此题的大大意是输入一个数,如果它不是一位的数字的话,那么我们就将它的每一位都相加,相加后如果还是两位或者更多的话那么我们继续取出它的每一位数字进...
  • l2580258
  • l2580258
  • 2016年03月30日 00:07
  • 1058

求数组中两两相加等于某个数的组合种数

参考书籍:算法设计与分析基础  Java程序员面试宝典-何昊等 package com.Howard.test11; import java.util.Arrays; /** * 求int数...
  • zymx14
  • zymx14
  • 2017年04月20日 21:01
  • 931

找到一个数组中相加为特定数值的两个元素

作者:刘天宇 时间:2017/7/8 14:39:44 题目:给定一个整数数组,返回两个数字的索引,使它们相加到一个特定的目标。您可以假设每个输入都只有一个解决方案,而您可能不会使用相同的元素两次。...
  • sky_pri
  • sky_pri
  • 2017年07月08日 17:18
  • 444
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:取a数组里面的8个数字!让他们结果相加等于1979970
举报原因:
原因补充:

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