朝花夕拾 Java練習1
阿新 • • 發佈:2020-12-11
技術標籤:Java習題冊
朝花夕拾 Java練習1
歡迎掃碼關注微信公眾號"野心與家",回覆"12.10", 獲取原始碼
- 實現簡易計算器的加減乘除運算。
要求:從鍵盤上輸入兩個運算元和一個運算子,計算運算的結果並輸出。例如,輸入兩個數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);
}
}
}