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)); }}
我看不懂你们的代码,递归应该是要先找到出口的,出口不是n=1,最大值就是a[n-1]?
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); } } 这样就好啦^_^
max = n
int a[]={1,2,3,4,5,6,7,};
n=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);
// 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;
}
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;
}
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));
}}
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);
}
}
这样就好啦^_^
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;
}
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());
}
}
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());
}
}