1. 程式人生 > >JavaSE part1 基礎程式設計day07

JavaSE part1 基礎程式設計day07

4_9 在這裡插入圖片描述 程式碼:

	public static void main(String[] args){
		double sum=0;
		for(int i=1;i<=99;i+=2){
			sum=sum+1.0*i/(i+2);
		}
		System.out.println(sum);
	}

4_10 在這裡插入圖片描述 程式碼:

	public static void main(String[] args){
		double pi=0;
		for(int i=1;i<=1000000000;i++){
			if(i%2==1){
				pi=pi+1.0/(2*i-1);
			}else{
				pi=pi-1.0/(2*i-1);
			}
		}
		System.out.println(4*pi);
	}
public static void main(String[] args){
		double pi=0;
		double flag=1.0;
		for(int i=1;i<=1000000000;i++){
			//pi=pi+Math.pow(-1, i+1)/(2*i-1);
			pi=pi+flag/(2*i-1);
			flag=-flag;
		}
		pi=4*pi;
		System.out.println(pi);
	}

4_11 在這裡插入圖片描述 程式碼:

public static void main(String[] args){
		double e=0;
		for(int i=1;i<10000;i++){
			double multi=1.0;
			for(int j=1;j<=i;j++){
				multi=multi*j;
			}
			e=e+1/multi;
		}
		System.out.println(e);
		
	}

4_12 在這裡插入圖片描述 程式碼:

	public static void main(String[] args) {
		int count=0;
		for(int i=101;i<=2100;i++){
			if(i%4==0&&i%100!=0||i%400==0){
				System.out.print(i+" ");
				count++;
				if(count%10==0){
					System.out.println();
				}
			}
		}
		System.out.println("\n"+count);
	}

4_13 在這裡插入圖片描述 程式碼:

public static void main(String[] args) {
		//輸入年份 星期
		//輸出每個月的第一天是星期幾
		//1.1 2.1 3.1...12.1
		int year;
		int week;
		Scanner scanner=new Scanner(System.in);
		System.out.print("Enter year and week:");
		year=scanner.nextInt();//2013
		week=scanner.nextInt();
		int m=0,y=0,k=0,j=0,h=0;
		String monthStr="";
		String weekStr="";
		for(int month=1;month<=12;month++){
			m=month;
			y=year;//2013
			if(m==1||m==2){
				m+=12;
				y--;
			}
			k=y%100;
			j=y/100;
			h=(1+26*(month+1)/10+k+k/4+j/4+5*j)%7;
			switch (month) {
				case 1:
					monthStr="January";
					break;
				case 2:
					monthStr="February";
					break;
				case 3:
					monthStr="March";
					break;
				case 4:
					monthStr="April";
					break;
				case 5:
					monthStr="May";
					break;
				case 6:
					monthStr="June";
					break;
				case 7:
					monthStr="July";
					break;
				case 8:
					monthStr="August";
					break;
				case 9:
					monthStr="September";
					break;
				case 10:
					monthStr="October";
					break;
				case 11:
					monthStr="November";
					break;
				case 12:
					monthStr="December";
					break;
			}
			switch (h) {
				case 0:
					weekStr="Saturday";
					break;
				case 1:
					weekStr="Sunday";
					break;
				case 2:
					weekStr="Monday";
					break;
				case 3:
					weekStr="Tuesday";
					break;
				case 4:
					weekStr="Wednesday";
					break;
				case 5:
					weekStr="Thursday";
					break;
				case 6:
					weekStr="Friday";
					break;
			}
			System.out.println(monthStr+" 1,"+year+" is "+weekStr);
		}
	}

4_15 在這裡插入圖片描述 程式碼:

public static void main(String[] args){
		int sum=0;
		for(int i=1;i<=10000;i++){
			for(int j=1;j<=i/2;j++){
				if(i%j==0){
				sum+=j;
				}
			}
			if(sum==i){
				System.out.println(i);
			}
			sum=0;
		}
	}

4_16 在這裡插入圖片描述 程式碼:

public static void main(String[] aargs){
		int cCount=0;
		int pCount=0;
		Scanner scanner=new Scanner(System.in);
		while(true){
			System.out.print("請輸入;0剪刀1石頭2布:");
			int p=scanner.nextInt();
			int c=(int) (Math.random()*3);
			if(p==c){
				System.out.println("平局,請繼續!");
			}
			if(p==0&&c==1){
				System.out.println("玩家剪刀,電腦石頭,電腦贏");
				cCount++;
			}
			if(p==0&&c==2){
				System.out.println("玩家剪刀,電腦布,玩家贏");
				pCount++;
			}
			if(p==2&&c==0){
				System.out.println("玩家布,電腦剪刀,電腦贏");
				cCount++;
			}
			if(p==2&&c==1){
				System.out.println("玩家布,電腦石頭,玩家贏");
				pCount++;
			}
			if(p==1&&c==2){
				System.out.println("玩家石頭,電腦布,電腦贏");
				cCount++;
			}
			if(p==1&&c==0){
				System.out.println("玩家石頭,電腦剪刀,玩家贏");
				pCount++;
			}
			if(cCount==2||pCount==2){
				break;
			}
		}
		if(cCount==2){//Unreachable code
			System.out.println("遊戲結束,最終電腦贏!");
		}else{
			System.out.println("遊戲結束,最終玩家贏!");
		}
	}

4_17 在這裡插入圖片描述 程式碼:

public static void main(String[] args){
		double sum=0;
		for(int i=1;i<=624;i++){
			sum=sum+1/(Math.sqrt(i)+Math.sqrt(i+1));
		}
		System.out.print(sum);
	}

4_18 在這裡插入圖片描述 程式碼:

public static void  main(String[] args){
		Scanner scanner=new Scanner(System.in);
		System.out.print("Enter a number:");
		int number=scanner.nextInt();
		String str="";
		while(true){
			int num=number%16;
			if(num>=10){
				switch(num){
				case 10:
					str="A"+str;
					break;
				case 11:
					str="B"+str;
					break;
				case 12:
					str="C"+str;
					break;
				case 13:
					str="D"+str;
					break;
				case 14:
					str="E"+str;
					break;
				case 15:
					str="F"+str;
					break;
				}	
			}else{
				str=num+str;
			}
			number/=16;
			if(number==0){
				break;
			}
//			str=number%2+str;
//			number/=2;
//			if(number==0){
//				break;
//			}
		}
		System.out.print("0X"+str);
	}

4_19 在這裡插入圖片描述 程式碼:

public static void main(String[] args){
		int max=0;
		int count=0;
		Scanner scanner=new Scanner(System.in);
		System.out.print("Enter numbers:");
		while(true){
			int n=scanner.nextInt();
			if(n>max){
				max=n;
				count=1;
			}else if(n==max){
				count++;
			}else if(n==0){
				break;
			}
		}
		System.out.print(max+":"+count);
	}

4_20 在這裡插入圖片描述 程式碼:

public static void main(String[] args){
		int count=0;
		for(int i=1;i<=6;i++){
			for(int j=i+1;j<=7;j++){
				System.out.println(i+":"+j);
				count++;
			}
		}
		System.out.print("count:"+count);
	}

4_21 在這裡插入圖片描述 程式碼:

public static void main(String[] args){
		Scanner scanner=new Scanner(System.in);
		double sum=0;
		double powSum=0;
		System.out.print("Enter 10 numbers:");
		for(int i=1;i<=10;i++){
			double num=scanner.nextDouble();
			sum+=num;
			powSum+=num*num;
		}
		double mean=sum/10;
		double sd=Math.sqrt( (powSum-sum*sum/10)/9);
		System.out.println("mean= "+mean);
		System.out.println("sd= "+sd);
	}

4_22 在這裡插入圖片描述 程式碼:

public static void main(String[] args){
		//提示使用者輸入兩個字串
		Scanner scanner=new Scanner(System.in);
		System.out.print("Enter a str1:");
		String s1=scanner.nextLine();
		System.out.print("Enter a str2:");
		String s2=scanner.nextLine();
		//比較兩個字串 Math.min
		//相對應字元挨個比較 直到不相等或最短的遍歷完
		int i=0;
		for(;i<=Math.min(s1.length(), s2.length());i++){
			if(s1.charAt(i)!=s2.charAt(i)){
				break;
			}
		}
		//通過 substring(0,i)擷取
		System.out.print("["+s1.substring(0, i)+"]");
	}

4_23 在這裡插入圖片描述 程式碼:

public static void main(String[] args) {
		//1.獲取字串
		Scanner scanner=new Scanner(System.in);
		System.out.print("Enter a string:");
		String s=scanner.nextLine();
		//2.遍歷字元 
		int count=0;
		for(int i=0;i<s.length();i++){
			if(s.charAt(i)>=65&&s.charAt(i)<=90){
				count++;
			}
		}
		System.out.println(count);
	}

4_24 在這裡插入圖片描述 程式碼:

public static void main(String[] args){
		Scanner scanner=new Scanner(System.in);
		System.out.print("Enter a string:");
		String str=scanner.nextLine();
		for(int i=0;i<str.length();i++){
			if(i%2==0){
				System.out.print(str.charAt(i));
			}
		}
	}