朝花夕拾 Java练习1

朝花夕拾 Java练习1_java


欢迎扫码关注微信公众号 “野心与家”​


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);
}
}
}