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

解决方案 »

  1.   

    a是集合吧  用一个maxif n>max
    max = n
      

  2.   

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

  3.   

    例如一个数组
    int a[]={1,2,3,4,5,6,7,};
    n=7,
    写一个递归函数算法,求数组的最大值.
      

  4.   

    我理解的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);
      

  5.   

    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;
    }
      

  6.   

    你写的,看上去是个递归的,可是你把List里面的东西一个个remove掉了,等你递归的时候,list根本就是空的,不管原来list多大,你的程序只递归2次,而且第二次list还是空的。
      

  7.   

    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;
    }
      

  8.   

    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));
    }}
      

  9.   

    我看不懂你们的代码,递归应该是要先找到出口的,出口不是n=1,最大值就是a[n-1]?
      

  10.   

    public class Test {
    int a[]={1,2,4,5,10,2,34,22,101,33,22};
    int max;
    public void getMax(int[] a,int i){
    if(a.length==i){
    System.out.println(max);
    }
    else{
    if(max<a[i])
    this.max=a[i];
    i++;
    getMax(a,i);
    }

    }
    public static void main(String[] args) {
    Test t=new Test();
    t.getMax(t.a, 0);
    System.out.println(t.max);
    }
    }
    这样就好啦^_^
      

  11.   

    int max=0;
    public  int getmax(int[] a)
    {    
         
         if(max<a[0]) max=a[0];
         if(a.length>1)
         {
             int[] b=new int[a.length-1];
             for(int i=0;i<a.length-1;i++)
             b[i]=a[i+1];
             getmax(b);
         }
         return max;
    }
      

  12.   

    public int getMaxNumber()
      

  13.   

    public class Format{
    public static void main(String[] args){
    String a = "fa12d010sf0asd23fa56sd8f+das";
    StringBuffer sb=new StringBuffer("");
    int len=a.length(),
    times=len/3+1,
    j=len%3,
    count=0;
    if(j!=0){
    sb.append(a.substring(count,j));
    count+=j;
    sb.append(",");
    for(int i=0;i<times-1;i++){
    sb.append(a.substring(count,count+3));
    count+=3;
    if(i!=times-2)sb.append(",");
    }
    }else
    for(int i=0;i<times;i++){
    sb.append(a.substring(count,count+3));
    count+=3;
    if(i!=times-2)sb.append(",");
    }
    System.out.println(sb.toString());
    }
    }
      

  14.   

    public class Format{
    public static void main(String[] args){
    String a = "fa12d010sf0asd23fa56sd8f+das";
    StringBuffer sb=new StringBuffer("");
    int len=a.length(),
    times=len/3+1,
    j=len%3,
    count=0;
    if(j!=0){
    sb.append(a.substring(count,j));
    count+=j;
    sb.append(",");
    for(int i=0;i<times-1;i++){
    sb.append(a.substring(count,count+3));
    count+=3;
    if(i!=times-2)sb.append(",");
    }
    }else
    for(int i=0;i<times;i++){
    sb.append(a.substring(count,count+3));
    count+=3;
    if(i!=times-2)sb.append(",");
    }
    System.out.println(sb.toString());
    }
    }