【Java】2023.3.29蓝桥杯打卡

  1. 三角形的面积(1)
  2. 求误差
  3. 你会四舍五入吗
  4. 你能输出它吗
  5. 十六进制转十进制

三角形的面积(1)

题目描述
已知三角形的两边和夹角的度数,请按公式S=absin(C)/2
这里a、b是三角形的两边,C是这两边的夹角,求三角形的面积。其中pi取3.1415926。
输入格式
输入有若干组数据,对于每组数据:
输入一行有三个浮点数,分别代表三角形的两边边长a、b及夹角C。
注:夹角C的单位为度。
输出格式
对于每组数据输出三角形的面积。结果保留两位小数。

输入样例
3 4 90
5.8 8 30
6.5 9.3 120
输出样例
6.00
11.60
26.18

import java.util.Scanner;

public class p15 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        while (sc.hasNextDouble()){
            double PI = 3.1415926;
            double a = sc.nextDouble();
            double b = sc.nextDouble();
            double C = sc.nextDouble();
            double c = C * PI / 180;
            double S = a * b * Math.sin(c) / 2;
            System.out.printf("%.2f%n",S);
        }
    }
}

两点距离

题目描述
当x很小时,有公式:e^x≈1+x。现在对不同的x,请你求出它们的误差的绝对值。
输入格式
输入有多行,每行一个double型的小数。
输出格式
对每个x输出对应的误差值,既:|e^x-(1+x)|的值。保留6位小数

输入样例
0.1
0.06
0.001
0.0001
输出样例
0.005171
0.001837
0.000001
0.000000

import java.util.Scanner;

public class p16 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        while (sc.hasNextDouble()){
            double x = sc.nextDouble();
            double error = Math.abs(Math.exp(x)-(1+x));
            System.out.printf("%.6f%n",error);
        }
    }
}

你会四舍五入吗

题目描述
学C语言了,可以编程解决很多问题,但没有一个C语言中的函数能完成四舍五入。
请编程解决这个问题。如输入2.055 0.154 10.159 99.999,则输出2.06 0.15 10.16 100.00。
输入格式
输入有若干行,每行一个浮点数x,都是三位小数
输出格式
输出四舍五入后的两位小数x。

输入样例
2.055
0.154
10.159
99.999
3.565
输出样例
2.06
0.15
10.16
100.00
3.57

import java.math.BigDecimal;
import java.math.RoundingMode;
import java.text.DecimalFormat;
import java.util.Scanner;

public class p17 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        while (sc.hasNextDouble()){
            double x = sc.nextDouble();
            BigDecimal bd = new BigDecimal(x);
            /*setScale是BigDecimal类的方法,在Java中用于设置BigDecimal对象的小数点后保留的位数。
             setScale方法接收两个参数,第一个参数表示小数点后保留的位数,第二个参数表示采用的舍入模式。
             RoundingMode.HALF_UP是Java中一种舍入模式,它表示四舍五入。如果舍弃位的数值大于或等于5,则将舍入位增加1,否则舍去。*/
            bd = bd.setScale(3, RoundingMode.HALF_UP);
            bd = bd.setScale(2, RoundingMode.HALF_UP);
            System.out.printf("%.2f%n",bd.doubleValue());
            //方法二:
            /*DecimalFormat df = new DecimalFormat("0.00");
            System.out.println(df.format(bd.doubleValue()));*/
        }
    }
}

你能输出它吗

题目描述
有一串奇异的符号,请编程输出。
输入格式

输出格式
输出!@#$~%^&*()_+|=-“”:

输入样例

输出样例
!@#$~%^&*()_+|=-“”:

public class p18 {
    public static void main(String[] args) {
        System.out.println("!@#$~%^&*()_+|\\=-\"\":");
    }
}

十六进制转十进制

题目描述
输入一个十六进制数,输出相应的十进制数。
十六进制的基数是0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f。
输入格式
输入有若干行,每行表示一个十六进制的数。
输出格式
输出每个十六进制数对应的十进制数。

输入样例
a1
1a
110
输出样例
161
26
272

public class p19 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        while (sc.hasNext()){
            String s = sc.nextLine();
            int decimal = 0;
            for (int i = 0; i < s.length(); i++) {
                char c = s.charAt(i);
                int digit = Character.digit(c,16);
                decimal = 16 * decimal +digit;
            }
            System.out.println(decimal);
        }
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值