日期:2014-05-20  浏览次数:20637 次

一个算法题
设a是有个n个整数类型数据元素的数据,试编写求a中最大值的递归函数。

------解决方案--------------------
语文不好

设a是有个n个整数类型数据元素的数据

什么意思啊?
------解决方案--------------------
a是集合吧 用一个max

if n> max
max = n
------解决方案--------------------
我理解的LZ的意思是求出最大值然后求阶乘,不过MS这样提问就太简单了,我可能理解错了

int a[]={1,2,3,4,5,6,7};
int n=a[0];
for(int i=1;i <a.length;i++){
if(a[i]> n)
n=a[i];
}

int s=1;
while(n> 0){
s*=n;
n--;
}
System.out.print(s);

------解决方案--------------------
lz说清楚一点啊
------解决方案--------------------
public static void main(String[] args) {
// TODO Auto-generated method stub
List <Integer> list = new ArrayList <Integer> ();
list.add(2);
list.add(2);
list.add(4);
list.add(1000);
list.add(5);
list.add(6);
System.out.println(getMaxNumber(list, 0));
}

public static int getMaxNumber(List list, int max) {
for (int i = 0; i < list.size(); i++) {
if ((Integer) list.get(i) > max) {
max = (Integer) list.get(i);
}
list.remove(i);
break;
}
while (list.size() > 0) {
max=getMaxNumber(list, max);
}
return max;
}
------解决方案--------------------
楼主说了是递归函数,看看你们都写了些啥。
------解决方案--------------------
我有点疑惑了,我写的那是什么呢?
------解决方案--------------------
你写的,看上去是个递归的,可是你把List里面的东西一个个remove掉了,等你递归的时候,list根本就是空的,不管原来list多大,你的程序只递归2次,而且第二次list还是空的。
------解决方案--------------------
四不像呀四不像。
------解决方案--------------------
public static int getMaxNumber(List list) {
int max = 0;
int size = list == null ? 0 : list.size();
if (size > 0) {
int temp = (int)list.remove(0);
int leftMax = getMaxNumber(list);
max = temp > leftMax ? temp : leftMax;
}
return max;
}


------解决方案--------------------
学习了
------解决方案--------------------
虽然我没有测试,但看着应该是正确的,我也做了一个小时,没做出来,又长知识了啊!
------解决方案--------------------
import java.util.*;
public class Check6 {

/**
* @param args
* a:当前检索的数组
* i:当前最大值所在的索引
* j:当前比较值所在的索引
*/
static int GetMaxElement(int a[],int i,int j)
{
int index=a[i]> =a[j]?i:j;
if((index==a.length-1) || (j==a.length-1))
return a[index];
else
return GetMaxElement(a,index,++j);
}


public static void main(String[] args) {
// TODO Auto-generated method stub
int cc[]={2,8,3,23,32,32,100,1,3,9,10,19};
System.out.println(GetMaxElement(cc,0,0));
}

}
------解决方案--------------------
蹩脚题目
------解决方案--------------------