首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

一个算法题,该怎么解决

2012-01-26 
一个算法题设a是有个n个整数类型数据元素的数据,试编写求a中最大值的递归函数。[解决办法]语文不好设a是有

一个算法题
设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));
}

}
[解决办法]
蹩脚题目
[解决办法]


为什么要递归呢?
[解决办法]
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);
}
}
这样就好啦^_^
[解决办法]
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;
}
[解决办法]
这个应该得满分吧
[解决办法]
public int getMaxNumber()

[解决办法]
你那是冒泡 人家要递归 你太有才了
[解决办法]
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());
}
}
[解决办法]
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());
}
}

热点排行