一维数组算法!谁能算出?

xzzd_jokelin 2010-09-29 10:23:28
定义一个含有30个整型元素的数组,按顺序分别赋予从2开始的偶数;
然后按顺序每5个数求出一个平均值,放在另一个数组中并输出。
...全文
240 点赞 收藏 22
写回复
22 条回复
wugui414 2010年10月04日
public class test {
static int[] i = new int[30];
static float[] j = new float[6];

public static void main(String[] args) {
i[0] = 2;
int a = 0;
int sum = 0;

for (int x = 1; x < 30; x++) {
i[x] = i[x - 1] + 2;
}

for (int y = a; y < a + 5; y++) {
if (y == 30) break;
sum += i[y];
if (y == a + 4) {
j[(a + 5) / 5 - 1] = sum;
sum = 0;
a = a + 5;
}
}

for (float b : j) {
System.out.println(b);
}


}

}
回复 点赞
blue_ps 2010年10月04日
差点连高中的等比、等差数列都给忘记了
等差数列的特性啊
久了没用就是生手啊
[Quote=引用 7 楼 clariones 的回复:]
又是脑筋急转弯:
。。。含有30个整型元素。。。,按顺序。。。。;
按顺序。。。每5个数。。。平均值,放在另一个数组中并输出。

5个数,都是偶数,n-4, n-2, n, n+2, n+4, 平均数是啥? 肯定是n呗

所以直接输出:

Java code

int totalLen=30;
int[] result = new int[totalLen/5];
fo……
[/Quote]
回复 点赞
Myway890806 2010年10月03日
[Quote=引用 6 楼 leehomwong 的回复:]
Java code

public static void main(String[] args) {
int[] arr = new int[30];
int i,j;
for(i=0,j=2;i<arr.length;i++,j+=2){
arr[i]= j;
}

……
[/Quote]

哥们 你回去运行过吗 ?汗……
回复 点赞
Myway890806 2010年10月03日
[Quote=引用 10 楼 canshui 的回复:]
引用 7 楼 clariones 的回复:
又是脑筋急转弯:
。。。含有30个整型元素。。。,按顺序。。。。;
按顺序。。。每5个数。。。平均值,放在另一个数组中并输出。

5个数,都是偶数,n-4, n-2, n, n+2, n+4, 平均数是啥? 肯定是n呗

所以直接输出:

Java code

int totalLen=30;
int[] result = new……
[/Quote]
回复 点赞
specialco 2010年10月03日
[Quote=引用 7 楼 clariones 的回复:]

又是脑筋急转弯:
。。。含有30个整型元素。。。,按顺序。。。。;
按顺序。。。每5个数。。。平均值,放在另一个数组中并输出。

5个数,都是偶数,n-4, n-2, n, n+2, n+4, 平均数是啥? 肯定是n呗

所以直接输出:
Java code

int totalLen=30;
int[] result = new int[totalLen/5];
for(in……
[/Quote]

经典
回复 点赞
千杯不醉-sen 2010年10月03日
算法要的是经典。
这个不错(纯属数学题):n-4, n-2, n, n+2, n+4
回复 点赞
littleJP 2010年10月03日
[Quote=引用 7 楼 clariones 的回复:]
又是脑筋急转弯:
。。。含有30个整型元素。。。,按顺序。。。。;
按顺序。。。每5个数。。。平均值,放在另一个数组中并输出。

5个数,都是偶数,n-4, n-2, n, n+2, n+4, 平均数是啥? 肯定是n呗

所以直接输出:

Java code

int totalLen=30;
int[] result = new int[totalLen/5];
fo……
[/Quote]
感觉这个挺厉害的 我都没想到
回复 点赞
panrui277 2010年10月01日
如果你不用上面那个就用这个:
import java.io.*;
public class Testmul {

/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
int i=1,j=1;
while(true){
System.out.print(i+"*"+j+"="+i*j+" ");
if(i>j)
j++;

else
{i++;
j=1;
System.out.println("\n");
}
if(i==10)break;
}
}

}
回复 点赞
tg008007x3 2010年09月30日
思想可以再进一步,6个平均数分别为2+2*2 。。。2+2*2+2*10,2+2*2+2*15。。。2+2*2+2*25
这是个等差数列,等差比为2*5=10,求出分别为6,16,26,36,46,56。
回复 点赞
茫茫大海 2010年09月30日
[Quote=引用 7 楼 clariones 的回复:]

又是脑筋急转弯:
。。。含有30个整型元素。。。,按顺序。。。。;
按顺序。。。每5个数。。。平均值,放在另一个数组中并输出。

5个数,都是偶数,n-4, n-2, n, n+2, n+4, 平均数是啥? 肯定是n呗

所以直接输出:
Java code

int totalLen=30;
int[] result = new int[totalLen/5];
for(in……
[/Quote]
对啊,这个想法好!值得思考!
回复 点赞
clariones 2010年09月30日
少写了一个*2, 因为每个位置都是偶数

int totalLen=30;
int[] result = new int[totalLen/5];
for(int i=0;i<totalLen;i+=5){
result [i] = i*2+2+4; <== 2 是首项,4是以首项为X的5个连续偶数的平均值=X+4
}

回复 点赞
clariones 2010年09月30日
又是脑筋急转弯:
。。。含有30个整型元素。。。,按顺序。。。。;
按顺序。。。每5个数。。。平均值,放在另一个数组中并输出。

5个数,都是偶数,n-4, n-2, n, n+2, n+4, 平均数是啥? 肯定是n呗

所以直接输出:

int totalLen=30;
int[] result = new int[totalLen/5];
for(int i=0;i<totalLen;i+=5){
result [i] = i+2+4; <== 2 是首项,4是以首项为X的5个连续偶数的平均值=X+4
}
回复 点赞
24K純帥 2010年09月30日

public static void main(String[] args) {
int[] arr = new int[30];
int i,j;
for(i=0,j=2;i<arr.length;i++,j+=2){
arr[i]= j;
}


int sum = 0;
int[] avrArr = new int[6];
for(i=0;i<6;i++){
for(j=0;i<5;j++){
sum = sum + arr[(i+1)*j];
avrArr[i]=sum/5;
sum = 0;
}
}

for(i=0;i<6;i++){
System.out.println("ans:"+avrArr[i]);
}
}
回复 点赞
DB5155 2010年09月30日
[Quote=引用 6 楼 leehomwong 的回复:]

Java code

public static void main(String[] args) {
int[] arr = new int[30];
int i,j;
for(i=0,j=2;i<arr.length;i++,j+=2){
arr[i]= j;
}


……
[/Quote]

果然如此,不知道楼主这个题是为了干什么用的,搞这么绕
回复 点赞
kubete 2010年09月30日
呵呵,的确!~~
回复 点赞
barsk 2010年09月30日
高,实在是高!
回复 点赞
canshui 2010年09月30日
[Quote=引用 7 楼 clariones 的回复:]
又是脑筋急转弯:
。。。含有30个整型元素。。。,按顺序。。。。;
按顺序。。。每5个数。。。平均值,放在另一个数组中并输出。

5个数,都是偶数,n-4, n-2, n, n+2, n+4, 平均数是啥? 肯定是n呗

所以直接输出:

Java code

int totalLen=30;
int[] result = new int[totalLen/5];
fo……
[/Quote]

呵呵, 有道理……
挑战惯性思维啊
回复 点赞
uplady 2010年09月29日
...是我这样理解的吗:

public int[] sort(int[] data){
int[] tmp = new int[data.length/5];
for(int j = 0; j < data.length/5; j++){
for(int i = 0; i < 5; i++){
tmp[j] = tmp[j] + data[5*j + i]/5;
}
}
return tmp;
}
回复 点赞
大自然的搬運工 2010年09月29日
楼上的写的不错
回复 点赞
dddddz 2010年09月29日

public static void main(String[] args) {
int[] arr = new int[30];
int i,j;
for(i=0,j=2;i<arr.length;i++,j+=2){
arr[i]= j;
}


int sum = 0;
int[] avrArr = new int[arr.length/5];
for(i=0;i<arr.length;i++){
sum = sum + arr[i];
if((i+1)%5 == 0){
avrArr[i/5]=sum/5;
sum = 0;
}
}

for(i=0;i<avrArr.length;i++){
System.out.println("ans:"+avrArr[i]);
}
}
回复 点赞
发动态
发帖子
Java SE
创建于2007-09-28

3.4w+

社区成员

30.7w+

社区内容

Java 2 Standard Edition
社区公告
暂无公告