java问题:一个数组(1-30升序排列,任意去除5个数字), 一个循环 要求输出和为26的两个数字,不能重复

如题,用java代码如何写?数组是自定义的,你可以自己定义一个已经排序好、无重复的数组。有两个要求(1)只能有一个循环(什么循环任意,但是所有循环只能用一次)(2)和为2... 如题,用java代码如何写?
数组是自定义的,你可以自己定义一个已经排序好、无重复的数组。 有两个要求(1)只能有一个循环(什么循环任意,但是所有循环只能用一次) (2)和为26
展开
 我来答
水晶Angelion
2016-07-12 · TA获得超过473个赞
知道小有建树答主
回答量:579
采纳率:50%
帮助的人:425万
展开全部
  1. 数组排序有专门的API,这里就不说了

  2. 获取1-30的5个随机数即可

  3. 使数组的下标和里面的值相同,那么 可以通过 数组[26-当前下标] 是否被去除 来输出

int a[] = new int[31];

// 赋值,去除

for(int i=1;i<26/2;i++){

    if(a[i]!=0 && a[26-i]!=0) 输出;

}


有问题请追问

更多追问追答
追问
(1)int a[] = new int[31];实际上31该为30了吧,因为数组第一个索引为0
(2) 去除5的数组长度还有25了,
(3)if(a[i]!=0 && a[26-i]!=0) 你这里我没懂? 能判断这两个值和为26?
追答
为了方便起见,将数组下标与里面的值相对应
for(int i=1;i<31;i++) a[i] = i;
将需要去除的下标中的值赋予0
for(int i=0;i<5;i++) a[随机数] = 0; 注意重复的数

a[i]!=0 判断此数是否已被排除
a[26-i]!=0,现在 下标==值 ,假如现在i==1,26-i=25 与其对应的数的下标就是25,这就是为了判断25下标是否被排除
如果都没被排除 则输出这两个数

26/2是为了排除诸如12 14,14 12,或13 13这种输出方式
pieryon
2016-07-12 · 知道合伙人数码行家
pieryon
知道合伙人数码行家
采纳数:14410 获赞数:166867
获取软件设计师高级职称 万达金融最佳创新奖

向TA提问 私信TA
展开全部
java代码实现如下:

public static void main(String args[]){
int[] intArray = new int[30] ;
for(int i=1;i<=30;i++){
intArray[i-1]=i;
}
Arrays.sort(intArray);
//任意去除两个数字
Random r = new Random();
int result = r.nextInt(intArray.length);

intArray.remove(result);
//输出26的和
for(int j=0;j<=intArray.length;j++){
if(intArray[j]+intArray[i]=26){
system.out.print(intArray[j]+intArray[i]);
}
}

}
更多追问追答
追问
哥们,你这个有问题。(1)数组是自定义的,你这没有必要用循环来赋值,不然你就直接错了,题目要求只要一个循环,而且你去除数字好像只去除了一个。 (2) i值固定了为29没错吧,在intArray[29]不会报错?(3)你这个就相当于是把每个数字和intArray[29]求和比较。这没错????
追答
我验证过了的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式