求最大整数的 import java.util.*; public class TestArray { public static void main(String[] args) { Random r = new Random(); int[] ai = new int[20]; for(int i=0; i<ai.length; i++) ai[i] = r.nextInt(100); for(int i : ai) System.out.print(i + ", "); System.out.println("\n" + max(ai, 0, ai.length-1)); }
public static int max(int[] i, int start, int end) { if(end - start == 1) return i[start] > i[end] ? i[start] : i[end]; if(start == end) return i[start]; int ms = max(i, start, (start+end)/2); int me = max(i, (start+end)/2 + 1, end); return ms > me ? ms : me; } } 我还真想不出求平均值怎么用递归..
//avg public static float avg(int[] array, int length) { if (array == null || length < 1) { throw new IllegalArgumentException(); } if (length == 1) { return array[0]; } else { return ((array[length - 1] + (length - 1) * avg(array, length - 1)) / length); } }
import java.util.Scanner;public class Test { public static void main(String[] args) { Scanner in=new Scanner(System.in); int[] digit=new int[10]; for(int i=0;i<digit.length;i++) digit[i]=in.nextInt(); Test array=new Test(digit); System.out.println("The highest number is "+array.sort()+",and the average is "+array.average()); } public Test(int[] array) { n=array; }
public double average() { if(index==n.length-1) { index=0; return (result+=n[n.length-1])/n.length; } result+=n[index]; index++; return average(); } public int sort() { if(index==n.length-1) { index=0; return n[n.length-1]; } if(n[index]>=n[index+1]) { int temp=n[index+1]; n[index+1]=n[index]; n[index]=temp; } index++; return sort(); } private double result=0; private static int index=0; private int[] n; }
public class DumpMethods { public int maxNumber(int[] arr, int n) { n--; if (n == 1) { if (arr[1] < arr[0]) return arr[0]; else return arr[1]; } else { if (arr[n] < maxNumber(arr, n)) return maxNumber(arr, n); else return arr[n]; } } public double sumNumber(int[] arr, int n) { n--; if (n == 1) { return arr[0] + arr[1]; } else { return arr[n]+sumNumber(arr, n); } } public static void main(String args[]) { DumpMethods dm = new DumpMethods(); int[] array = { 6,1, 2, 3, 4 }; int maxNumber = dm.maxNumber(array, array.length); double aveNumber = dm.sumNumber(array, array.length)/array.length; System.out.println(maxNumber); System.out.println(aveNumber); } }
package book.upload;public class TestArray { public static void max(int[] a,int no,int max){ if (a[no]>max) max=a[no]; if (no>=a.length-1){ System.out.println("max="+max); return; } max(a,no+1,max); } public static void avg(int[] a,int no,double avg){ avg=(avg*no+a[no])/(no+1); if (no==a.length-1){ System.out.println("avg="+avg); return; } avg(a,no+1,avg); } public static void avg2(int[] a,int no,int sum){ sum+=a[no]; if (no==a.length-1){ System.out.println("avg="+sum/(no-1)); return; } avg(a,no+1,sum); } public static void main(String[] args) { int a[]={1,2,3,10,4,9,5,7,8}; max(a,0,a[0]); avg(a,0,0); avg2(a,0,0); }}
public class Test { static int n=9; //假设数组中有10个元素,为a[0]~a[9] static int[] a={18,-7,31,64,5,-26,78,18,-99,10}; //随意设置的数组初值 static int max=a[0]; //存放数组中的最大值 static double sum=0; //存放数组中所有元素之和 static double avg; //存放数组的平均值
import java.util.*;
public class TestArray {
public static void main(String[] args) {
Random r = new Random();
int[] ai = new int[20];
for(int i=0; i<ai.length; i++)
ai[i] = r.nextInt(100);
for(int i : ai)
System.out.print(i + ", ");
System.out.println("\n" + max(ai, 0, ai.length-1));
}
public static int max(int[] i, int start, int end) {
if(end - start == 1)
return i[start] > i[end] ? i[start] : i[end];
if(start == end)
return i[start];
int ms = max(i, start, (start+end)/2);
int me = max(i, (start+end)/2 + 1, end);
return ms > me ? ms : me;
}
}
我还真想不出求平均值怎么用递归..
public static float avg(int[] array, int length) {
if (array == null || length < 1) {
throw new IllegalArgumentException();
}
if (length == 1) {
return array[0];
} else {
return ((array[length - 1] + (length - 1) * avg(array, length - 1)) / length); }
}
{
public static void main(String[] args)
{
Scanner in=new Scanner(System.in);
int[] digit=new int[10];
for(int i=0;i<digit.length;i++)
digit[i]=in.nextInt(); Test array=new Test(digit);
System.out.println("The highest number is "+array.sort()+",and the average is "+array.average());
}
public Test(int[] array)
{
n=array;
}
public double average()
{
if(index==n.length-1)
{
index=0;
return (result+=n[n.length-1])/n.length;
}
result+=n[index];
index++;
return average();
} public int sort()
{
if(index==n.length-1)
{
index=0;
return n[n.length-1];
}
if(n[index]>=n[index+1])
{
int temp=n[index+1];
n[index+1]=n[index];
n[index]=temp;
}
index++;
return sort();
}
private double result=0;
private static int index=0;
private int[] n;
}
n--;
if (n == 1) {
if (arr[1] < arr[0])
return arr[0];
else
return arr[1];
} else {
if (arr[n] < maxNumber(arr, n))
return maxNumber(arr, n);
else
return arr[n];
}
} public double sumNumber(int[] arr, int n) {
n--;
if (n == 1) {
return arr[0] + arr[1];
} else {
return arr[n]+sumNumber(arr, n);
}
} public static void main(String args[]) {
DumpMethods dm = new DumpMethods();
int[] array = { 6,1, 2, 3, 4 };
int maxNumber = dm.maxNumber(array, array.length);
double aveNumber = dm.sumNumber(array, array.length)/array.length;
System.out.println(maxNumber);
System.out.println(aveNumber);
}
}
if (a[no]>max)
max=a[no];
if (no>=a.length-1){
System.out.println("max="+max);
return;
}
max(a,no+1,max);
}
public static void avg(int[] a,int no,double avg){
avg=(avg*no+a[no])/(no+1);
if (no==a.length-1){
System.out.println("avg="+avg);
return;
}
avg(a,no+1,avg);
}
public static void avg2(int[] a,int no,int sum){
sum+=a[no];
if (no==a.length-1){
System.out.println("avg="+sum/(no-1));
return;
}
avg(a,no+1,sum);
}
public static void main(String[] args) {
int a[]={1,2,3,10,4,9,5,7,8};
max(a,0,a[0]);
avg(a,0,0);
avg2(a,0,0);
}}
public class Test {
static int n=9; //假设数组中有10个元素,为a[0]~a[9]
static int[] a={18,-7,31,64,5,-26,78,18,-99,10}; //随意设置的数组初值
static int max=a[0]; //存放数组中的最大值
static double sum=0; //存放数组中所有元素之和
static double avg; //存放数组的平均值
static void doMax(){ //求最大值函数
if(a[n]>max){
max=a[n];
}
if(n>0) {
n--;
doMax();
} }
static void doAvg(){ //求平均值函数
if(n<10){
sum=sum+a[n];
n++;
doAvg();
} else {
avg=sum/a.length;
}
}
public static final void main(String[] args) {
doMax();
System.out.println(max);
doAvg();
System.out.println(avg);
}
}
import java.util.Scanner;
public class Sca { public static int digui(int[] a,int n,int i,int max)
{
if(i!=n-1)
{
return digui(a,n,i+1,max > a[i]?max:a[i]);
}
else
{
return (max > a[i]?max:a[i]);
}
}
public static void main(String[] args)
{
int[] a = {1,2,3,4,5};
int t = digui(a,5,0,a[0]);
System.out.printf("Max = %d\n",t);
}
}
import java.util.Scanner;
public class Sca { public static double digui(int[] a,int n,int i,int total)
{
if(i!=n-1)
{
return digui(a,n,i+1,total+a[i]);
}
else
{
return ((total+a[i])/(double)n);
}
}
public static void main(String[] args)
{
int[] a = {1,2,3,4,5};
double t = digui(a,5,0,0);
System.out.println(t);
}
}