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+" ");
		}
	}
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章