1. 程式人生 > 其它 >朝花夕拾 Java練習1

朝花夕拾 Java練習1

技術標籤:Java習題冊

朝花夕拾 Java練習1

歡迎掃碼關注微信公眾號"野心與家",回覆"12.10", 獲取原始碼

  1. 實現簡易計算器的加減乘除運算。
    要求:從鍵盤上輸入兩個運算元和一個運算子,計算運算的結果並輸出。例如,輸入兩個數1和3,運算子是“+”,輸出結果為:1+3=4.
package com.Dome.aoian;
import java.util.Scanner;
public class Dome {
	public static void main(String[] args) {
		Scanner sc=new Scanner
(System.in); System.out.println("請輸入一個數:"); double n1=sc.nextDouble(); System.out.println("請輸入一個運算子:"); String s=sc.next(); // char op=s.charAt(0); System.out.println("請輸入一個數:"); double n2=sc.nextDouble(); double result=0; switch(s) { case "+"
:result=n1+n2;System.out.println(n1+"+"+n2+"="+result);break; case "-":result=n1-n2;System.out.println(n1+"-"+n2+"="+result);break; case "*":result=n1*n2;System.out.println(n1+"*"+n2+"="+result);break; case "/"
:result=n1/n2; if(n2==0) { System.out.println("除數不能為0"); } else { System.out.println(n1+"/"+n2+"="+result);break; } } } }

2.輸入一個字母,將字母輸出,例如,’a’變成’f’,’w’變成’b’

package com.Dome.aoian;
import java.util.Scanner;
public class Dome {
	public static void main(String[] args) {	
		System.out.println("請輸入一個字母:");
		Scanner sc=new Scanner(System.in);
		String s=sc.next();
		char ch=s.charAt(0);
		if(ch>='A'&&ch<='Z'||ch>='a'&&ch<='z')
		{
			if(ch>='A'&&ch<='U'||ch>='a'&&ch<='u')
			{
				char ch1=(char)(ch+5);
				System.out.println("後移五位後變成:"+ch1);
			}
			else {
				char ch1=(char)(ch-21);
				System.out.println("後移五位後變成:"+ch1);
			}
		}		
		else {
			System.out.println("非法字元,請重新輸入");
		}		
	}
}

3.求1+1/2+3/5+5/8+…(求前十項的和)

package com.Dome.aoian;
import java.util.Scanner;
public class Dome {
	public static void main(String[] args) {
		double sum=0.0;
		double a=1,b=1,t;	//double型別
		for(int i=1;i<=10;i++)
		{
			sum=sum+a/b;	//sum=1/1=1;
			t=a;	//t=1;		t=1;	t=2;	t=3;
			a=b;	//a=1;		a=2;	a=3;	a=5;
			b=b+t;	//b=1+1=2;	b=3;	b=5;	b=8;
		}
		System.out.println(sum);
	}
}

4.輸入a和n的值,求s=a+aa+aaa+aaaa+aa…a(n個a)的值並輸出。例如當n是5,a是2的時候,s=2+22+222+2222+22222。

package com.Dome.aoian;
import java.util.Scanner;
public class Dome {
	public static void main(String[] args) {
		System.out.println("請輸入a和n的值:");
		Scanner sc=new Scanner(System.in);
		int a=sc.nextInt();
		int n=sc.nextInt();
		int s=0,sum=0;
		for(int i=1;i<=n;i++)
		{
			s=s*10+a;
			sum=sum+s;
		}
		System.out.println(sum);
	}
}

5.求1-1/2+2/3-3/4+…-9/10;

方法一 :

package com.Dome.aoian;
import java.util.Scanner;
public class Dome {
	public static void main(String[] args) {
		double sum=1,j=1;		//注意sum=1
		for(int i=1;i<=10;i++)
		{
			sum=sum+j*(i-1)/i;
			j=j*-1;
		}
		System.out.print(sum);
	}
}

方法二 :

package com.Dome.aoian;
import java.util.Scanner;
public class Dome {
	public static void main(String[] args) {
		double sum=1;
		int j=2;
		for(int i=1;i<10;i++)
		{
			sum=sum+i*Math.pow(-1, i)/j;
			j++;
		}
		System.out.print(sum);
	}
}

6.輸入一個整數,判斷它有多少位並輸出。

方法一 :

package com.Dome.aoian;
import java.util.Scanner;
public class Dome {
	public static void main(String[] args) {
		System.out.println("請輸入一個整數");
		Scanner sc=new Scanner(System.in);
		int n=sc.nextInt();
		int i;
		for(i=0;n>0;i++)
		{
			n=n/10;//n=666=666/10=66--->n=66=66/10=6--->n=6=6/10=0
		}
		System.out.println(i+"位");
	}
}

方法二 :

package com.Dome.aoian;
import java.util.Scanner;
public class Dome {
	public static void main(String[] args) {
		System.out.println("請輸入一個整數");
		Scanner sc=new Scanner(System.in);
		String s=sc.next();
		System.out.println(s.length()+"位");		//呼叫length獲取字串長度
	}
}

7.輸入一個整數,判斷其是否是完數,如果是,則輸出YES,否則輸出NO。
(提示:一個數如果恰好等於它的因子之和,這個數就稱為"完數"。例如6=1+2+3)

package com.Dome.aoian;
import java.util.Scanner;
public class Dome {
	public static void main(String[] args) {
		System.out.println("請輸入一個整數");
		Scanner sc=new Scanner(System.in);
		int n=sc.nextInt();
		int sum=0;
		for(int i=1;i<n;i++)	//注意i=1,不能為0,需要對i取餘
		{
			if(n%i==0)	//對i取餘		例如n=6 n%1==0	6%2==0	6%3==0  6%4!=0 結束迴圈
			{
				sum=sum+i;	//sum=0+1+2+3=6
			}
		}
		if(n==sum)
		{
			System.out.println("yes");
		}
		else
		{
			System.out.println("no");
		}				
	}
}

8.輸出1000以內的所有完數。

package com.Dome.aoian;
public class Dome {
	public static void main(String[] args) {
		int sum;
		for(int n=1;n<=1000;n++)
		{
			sum=0;
			for(int i=1;i<n;i++)
			{
				if(n%i==0)
				sum=sum+i;
			}
			if(sum==n)
				System.out.println(n);
		}	
	}
}

9.輸入一個大於3的整數,判斷其是否為素數,輸出判斷結果“YES”或“NO”

package com.Dome.aoian;
import java.util.Scanner;
public class Dome {
	public static void main(String[] args) {
		System.out.println("請輸入一個大於三整數");
		Scanner sc=new Scanner(System.in);
		int n=sc.nextInt();	//素數只能被1和它本身整除;
		int a=0;
		for(int i=2;i<n;i++)	//注意i的初始值為2
		{
			if(n%i==0)	//如果被整除
			{
				a++;	//計數
			}
		}
		if(a==0)
		{
			System.out.println("yes");
		}
		else
		{
			System.out.println("no");
		}
	}
}

10.輸出200-300之間所有的素數

package com.Dome.aoian;
public class Dome {
	public static void main(String[] args) {
		int n;
		for(int i=200;i<300;i++)
		{
			for(n=2;n<i;n++)
			{
				if(i%n==0)
					break;
			}
			if(i==n)
				System.out.println(n);
		}
	}
}