编程初学者入门训练-简单计算器

目录

  1. 带空格直角三角形图案
  2. 直角三角形图案
  3. 简单计算器
  4. 获得月份天数
  5. 计算一元二次方程

1.题目描述

KiKi学习了循环,BoBo老师给他出了一系列打印图案的练习,该任务是打印用“*”组成的带空格直角三角形图案。

1.1输入描述

多组输入,一个整数(2~20),表示直角三角形直角边的长度,即“*”的数量,也表示输出行数。

1.2输出描述

针对每行输入,输出用“”组成的对应长度的直角三角形,每个“”后面有一个空格。

1.3示例1

输入

5

输出

在这里插入图片描述

1.4示例2

输入

4

输出

在这里插入图片描述

1.5代码实现

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;

public class Main{
    public static void main(String[] args) throws IOException{
        BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
        String input = bf.readLine();
        while(input != null){
            int n = Integer.parseInt(input);
            for(int i=0;i<n;i++){
                for(int j=0;j<n-i-1;j++){
                    System.out.print("  ");
                }
                for(int j=0;j<i+1;j++){
                    System.out.print("* ");
                }
                System.out.println();
            }
            input = bf.readLine();
        }
    }
}

2.题目描述

KiKi学习了循环,BoBo老师给他出了一系列打印图案的练习,该任务是打印用“*”组成的直角三角形图案。

2.1输入描述

多组输入,一个整数(2~20),表示直角三角形直角边的长度,即“*”的数量,也表示输出行数。

2.2输出描述

针对每行输入,输出用“”组成的对应长度的直角三角形,每个“”后面有一个空格。

2.3示例1

输入

4

输出

在这里插入图片描述

2.4示例2

输入

5

输出

在这里插入图片描述

2.5代码实现

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;

public class Main{
    public static void main(String[] args) throws IOException{
        BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
        String input = bf.readLine();
        while(input != null){
            int n = Integer.parseInt(input);
            for(int i=0;i<n;i++){
                for(int j=0;j<i+1;j++){
                    System.out.print("* ");
                }
                System.out.println();
            }
            input = bf.readLine();
        }
    }
}

3.题目描述

KiKi实现一个简单计算器,实现两个数的“加减乘除”运算,用户从键盘输入算式“操作数1运算符操作数2”,计算并输出表达式的值,如果输入的运算符号不包括在(+、-、*、/)范围内,输出“Invalid operation!”。当运算符为除法运算,即“/”时。如果操作数2等于0.0,则输出“Wrong!Division by zero!”

3.1输入描述

多组输入,一行,操作数1运算符操作数2(其中运算符号包括四种:+、-、*、/)。

3.2输出描述

针对每组输入,输出为一行。
如果操作数和运算符号均合法,则输出一个表达式,操作数1运算符操作数2=运算结果,各数小数点后均保留4位,数和符号之间没有空格。
如果输入的运算符号不包括在(+、-、*、/)范围内,输出“Invalid operation!”。当运算符为除法运算,即“/”时。
如果操作数2等于0.0,则输出“Wrong!Division by zero!”。

3.3示例1

输入

1.0+3.0
1.0;4.0
44.0/0.0

输出

1.0000+3.0000=4.0000
Invalid operation!
Wrong!Division by zero!

3.4代码实现

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;

public class Main{
    public static void main(String[] args) throws IOException{
        BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
        String input = bf.readLine();
        while(input != null){
            String[] strs = input.split("[+\\-\\*\\/]");
            if(strs.length<2){
                System.out.println("Invalid operation!");
            }else{
                double a = Double.parseDouble(strs[0]);
                double b = Double.parseDouble(strs[1]);
                String operator = input.substring(strs[0].length(),strs[0].length()+1);//substring(int beginIndex, int endIndex)截取字符串
                if(operator.equals("+")){
                    System.out.printf("%.4f+%.4f=%.4f",a,b,a+b);
                    break;
                }else if(operator.equals("-")){
                    System.out.printf("%.4f-%.4f=%.4f",a,b,a-b);
                    break;
                }else if(operator.equals("*")){
                    System.out.printf("%.4f*%.4f=%.4f",a,b,a*b);
                    break;
                }else if(operator.equals("/")){
                    if(b==0){
                         System.out.println("Wrong!Division by zero!");
                    }else{
                        System.out.printf("%.4f/%.4f=%.4f",a,b,a/b);
                    }
                }
                System.out.println();
            }
            input = bf.readLine();
        }
    }
}

4.题目描述

KiKi想获得某年某月有多少天,请帮他编程实现。输入年份和月份,计算这一年这个月有多少天。

4.1输入描述

多组输入,一行有两个整数,分别表示年份和月份,用空格分隔。

4.2输出描述

针对每组输入,输出为一行,一个整数,表示这一年这个月有多少天。

4.3示例1

输入

2008 2

输出

29

4.4代码实现

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;

public class Main{
    public static void main(String[] args) throws IOException{
        BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
        String input = bf.readLine();
        while(input != null){
            String[] strs = input.split(" ");
            int year = Integer.parseInt(strs[0]);
            int month = Integer.parseInt(strs[1]);
            if(year%4==0 && year%100!=0 ||year%400==0){//四年一闰,百年不闰,四百年再闰
                if(month==2){
                    System.out.println("29");    //闰年
                }else if(month==1||month==3||month==5||month==7||month==8||month==10||month==12){
                     System.out.println("31");
                }else{
                     System.out.println("30");
                }
            }else{
                if(month==2){
                    System.out.println("28");    //平年
                }else if(month==1||month==3||month==5||month==7||month==8||month==10||month==12){
                     System.out.println("31");
                }else{
                     System.out.println("30");
                }
            }
            input = bf.readLine();
        }
    }
}

5.题目描述

从键盘输入a, b, c的值,编程计算并输出一元二次方程ax2 + bx + c = 0的根,当a = 0时,输出“Not quadratic equation”,当a ≠ 0时,根据△ = b2 - 4ac的三种情况计算并输出方程的根。

5.1输入描述

多组输入,一行,包含三个浮点数a, b, c,以一个空格分隔,表示一元二次方程ax2 + bx + c = 0的系数。

5.2输出描述

针对每组输入,输出一行,输出一元二次方程ax2 + bx +c = 0的根的情况。
如果a = 0,输出“Not quadratic equation”;
如果a ≠ 0,分三种情况:
△ = 0,则两个实根相等,输出形式为:x1=x2=…。
△ > 0,则两个实根不等,输出形式为:x1=…;x2=…,其中x1 <= x2。
△ < 0,则有两个虚根,则输出:x1=实部-虚部i;x2=实部+虚部i,即x1的虚部系数小于等于x2的虚部系数,实部为0时不可省略。实部= -b / (2a),虚部= sqrt(-△ ) / (2a)
所有实数部分要求精确到小数点后2位,数字、符号之间没有空格。

5.3示例1

输入

2.0 7.0 1.0

输出

x1=-3.35;x2=-0.15

5.4示例2

输入

0.0 3.0 3.0

输出

Not quadratic equation

5.5示例3

输入

1 2 1

输出

x1=x2=-1.00

5.6示例4

输入

2 2 5

输出

x1=-0.50-1.50i;x2=-0.50+1.50i

5.7示例5

输入

1 0 1

输出

x1=0.00-1.00i;x2=0.00+1.00i

5.8代码实现

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;

public class Main{
    public static void main(String[] args) throws IOException{
        BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
        String input = bf.readLine();
        while(input != null){
            String[] strs = input.split(" ");
            double a = Double.parseDouble(strs[0]);
            double b = Double.parseDouble(strs[1]);
            double c = Double.parseDouble(strs[2]);
            double d = b*b-4*a*c;
            if(a==0){
                System.out.print("Not quadratic equation\n");
            }else if(d==0){
                System.out.printf("x1=x2=%.2f\n",-b/(2*a));
            }else if(d>0){
                System.out.printf("x1=%.2f;x2=%.2f\n",-(b+Math.sqrt(d))/(2*a),-(b-Math.sqrt(d))/(2*a));
            }else{
                System.out.printf("x1=%.2f-%.2fi;x2=%.2f+%.2fi\n",-b/(2*a),Math.sqrt(-d)/(2*a),-b/(2*a),Math.sqrt(-d)/(2*a));
            }
            input = bf.readLine();
        }
    }
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值