java问题:一个数组(1-30升序排列,任意去除5个数字), 一个循环 要求输出和为26的两个数字,不能重复
如题,用java代码如何写?数组是自定义的,你可以自己定义一个已经排序好、无重复的数组。有两个要求(1)只能有一个循环(什么循环任意,但是所有循环只能用一次)(2)和为2...
如题,用java代码如何写?
数组是自定义的,你可以自己定义一个已经排序好、无重复的数组。 有两个要求(1)只能有一个循环(什么循环任意,但是所有循环只能用一次) (2)和为26 展开
数组是自定义的,你可以自己定义一个已经排序好、无重复的数组。 有两个要求(1)只能有一个循环(什么循环任意,但是所有循环只能用一次) (2)和为26 展开
2个回答
展开全部
数组排序有专门的API,这里就不说了
获取1-30的5个随机数即可
使数组的下标和里面的值相同,那么 可以通过 数组[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这种输出方式
展开全部
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]);
}
}
}
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]求和比较。这没错????
追答
我验证过了的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询