Java常用算法(基础)

1、计算n的阶乘

import java.util.Scanner;

public class jie {
	public static void main(String[] args) {
		int w;
		System.out.print("请输入一个整数:");
		Scanner sc = new Scanner(System.in);  //开启监听键盘动作
		w=sc.nextInt(); //捕获键盘输入的数
		System.out.println(w+"的阶乘为:"+cheng(w));
	}
	public static int cheng(int n) {
		int sum=1;
		for(int i=n;i>0;i--) {
			sum*=i;
		}
	return sum;
	}
}

2、获取n以内的所有素数

import java.util.Scanner;

public class sushu {
	public static void main(String[] args) {
		int l,count=0;
		System.out.print("请输入一个整数:");
		Scanner sc = new Scanner(System.in); 
		l=sc.nextInt();
		for(int j=2;j<=l;j++) {
			if(su(j)==1) {
				System.out.printf("%6d",j);
				count++;
				if(count%10==0) {          //10个数为一行
					System.out.print("\n");
				}
			}
		}
		System.out.println("\n");
	}
	public static int su(int n) {
		for(int i=2;i<n;i++) {
			if(n%i==0) {
				return 0;	
			}
		}
		return 1;
	}
}

3、计算数组的平均值

public class avg {
	public static double ave(int[] s) {
		int sum=0;
		int length=s.length;
		for(int i=0;i<length;i++) {
			sum+=s[i];
		}
		return sum*1.0/length;
	}
	public static void main(String[] args) {
		int[] w= {12,23,34,45,56,67,78,61};
		double h = ave(w);
		System.out.println("平均数为:"+h);
	}
}

4、计算数组的最大值,最小值,和以及平均值

public class Helloworld {
	public static void main(String[] args) {
		int max,min,sum=0;
		double avg = 0;
		int array[]= {12,23,34,45,56,67,78,89,90,100};
		max=min=array[0];
		for(int i=0;i<array.length;i++) {
			sum+=array[i];
			avg=sum*1.0/array.length;
			if(array[i]>max)
				max=array[i];
			if(array[i]<min)
				min=array[i];
		}
		System.out.println("max = "+max);
		System.out.println("min = "+min);
		System.out.println("sum = "+sum);
		System.out.println("avg = "+avg);
	}
}

5、打印出乘法口诀表

public class chengkou {

	public static void main(String[] args) {
		for(int i=1,j=1;j<=9;i++){
				System.out.print(i+"*"+j+"="+i*j+" ");
				if(i==j) {
					i=0;
					j++;
					System.out.println();
				}
		}
	}
}

6、求一个数的最大公约数

import java.util.List;

public class yue {
	public static void main(String[] args) {
		int myue;
		yue y = new yue();
		myue=y.maxCommonDivisor(4,6);
		System.out.println("最大公约数为:"+myue);
	}
	 public static int maxCommonDivisor(int one, int two) {
	        int max = one * two;
	        int min = one > two ? one : two;
	        for (int i = min; i < max; i++) {
	            if (i % one == 0 && i % two == 0) {
	                return i;
	            }
	        }
	        return max;
	    }
}

7、猴子吃桃问题
猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个 第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下 的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。

public class monkey {

	public static void main(String[] args) {
		
		monkey mon = new monkey();
		int sum=mon.monkeyEatPeach();
		System.out.println("第一天摘的桃子总数为:"+sum);
	}
	 public int monkeyEatPeach() {
	        int sum = 1;
	        for (int i = 1; i < 10; i++) {
	            sum = (sum + 1) * 2;
	        }
	        return sum;
	    }
}

8、随机生成几个数

public class pratice {
	public static void main(String[] args) {
		int count=0;
		Random random = new Random();
	
		System.out.println("产生的随机数为:");
		for(int i=1;i<40;i++) {
			int ran=random.nextInt(100);
			count++;
			if(count%10==0) {
				System.out.print("\n");
			}
			System.out.print(ran+" ");
		}
	}
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章