黑马程序员技术交流社区

标题: 一个简单题目? [打印本页]

作者: 程振    时间: 2012-9-27 14:17
标题: 一个简单题目?
本帖最后由 屈俊材 于 2012-9-27 16:34 编辑

数组int array[n-1]中存放的是1~n之间的数,每个元素不会重复,其中少一个,找出少的那一个?
给出你的解题代码。。。
作者: 寇龙飞    时间: 2012-9-27 15:06
数组int array[n-1]---------------理解你题目想要表达的意思,但是这种表述不科学。。。。

小数学题一枚,直接上伪码:
  1. int arrSum = array[0]+array[1]+...+array[n-2];
  2. int nSum = n*(n-1)/2;
  3. int lostNum = nSum - arrSum;
复制代码
lostNum即为少的那一个。
不考虑arrSum>Integer.Max或n<2的情况
作者: 明光照    时间: 2012-9-27 15:10
本帖最后由 明光照 于 2012-9-27 15:13 编辑

import java.util.Arrays;

public class Test_6 {
        public static void main(String args[]) {
                int array[] = { 1, 3, 2, 5, 4, 6, 7, 9,10,8,13 };
                Arrays.sort(array);//将数组排序
                int i = 1;
                for (int j = 0; j < array.length; j++) {
                        if (i != array[j]) {
                                System.out.println("缺的那个数是:" + i);

                        }
                        i++;//使其自增长
                }
        }
}

作者: 曾浩    时间: 2012-9-27 15:19
写了一下自己的思路 通过互相比较的方式 这样是可以的
int arr[n-1];
for(int i=1;i<=n:i++){
   int flag=0;
    for(int ii=0;ii<n-1;ii++){
     if(arr[ii]==i){
           flag=1;
              }
}
if(flag==0){
System.out.println("queshaodeshi"+i);}
    }
}




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2