Java习题总结 - 03_2

这篇博客总结了8道Java编程习题,包括使用Cramer规则解线性方程组、彩票游戏算法、泽勒一致性算法、直角三角形内点判断、矩形位置关系判断以及图案输出等,涵盖了算法和逻辑思考。通过实例和解题思路,帮助读者巩固Java编程技能。
摘要由CSDN通过智能技术生成

Java习题总结 - 课外习题总结

 

第一题

可以使用编程练习题1.13 中给出的 Cramer 规则解线性方程组:

编写程序,提示用户输入a,b,c,d,e和f, 然后显示结果。如果ad - bc 为 0, 报告消息 “方程式无解”

下面是一些运行示例:

Enter a, b, c, d, e, f: 9.0 4.0 3.0 -5.0 -6.0 -21.0
x is -2.0 and y is 3.0

Enter a, b, c, d, e, f: 1.0 2.0 2.0 4.0 4.0 5. 0 
The equation has no solution

解题思路:

题中的数据——方程组的系数,公式的分母

题目要求——先判断公式的分母是否为零,不为零时根据公式计算方程组的解,为零时提示无解

步骤:

1.提示用户输入方程组的系数:a,b,c,d,e,f

2.计算公式的分母

3.判断分母是否为零,为零提示方程无解

4.不为零,根据公式计算方程组的解

5.输出方程组的解

代码:

import java.util.Scanner;
class Test01
{
    public static void main(String[] args)
    {
        Scanner input = new Scanner(System.in);
        double[] a1=new double[6];//定义存储两个二元一次方程系数的变量
        double x,y;//定义存储x,y的解的变量
        System.out.print("Enter the a, b, c, d, e, f:");//提示输入方程组的系数
        for(int i = 0; i < 6; i++)
        {
            a1[i] = input.nextDouble();//存储方程组系数
        }
        if((a1[0]*a1[3]-a1[1]*a1[2])==0)//判断公式的分母是否为零
        {
            System.out.println("The equation has no solution");//是,输出无解的提示
        }
        else//否,按步骤求解
        {
            x=(a1[4]*a1[3]-a1[1]*a1[5])/(a1[0]*a1[3]-a1[1]*a1[2]);//计算x的解
            y=(a1[0]*a1[5]-a1[2]*a1[3])/(a1[0]*a1[3]-a1[1]*a1[2]);//计算y的解
            System.out.printf("x:%f\ny:%f\n",x,y);//算出x,y的解
        }
    }
}

 

第二题

假设你想开发一个玩彩票的游戏,程序随机的产生一个两位数的彩票,提示用户输入一个两位数,然后根据下面规则判断用户是否能赢:

1.如果用户输人的所有数匹配彩票的确切顺序,奖金是10 000美元。

2. 如果用户输人的所有数匹配彩票的所有数字,奖金是 3 000 美元。

3.如果用户输人的其中一个数匹配彩票号码中的一个数,奖金是 1 000美元

解题思路:

题中的数据——用户输入的两位数,计算机随机生成的两位数

题目要求——根据规则判断用户是否能赢

步骤:

1.提示用户输入一个两位数

2.计算机随机生成一个两位数

3.根据用户输入的数,计算机随机产生的数以及游戏规则,判断用户的中奖金额

代码:

import java.util.Scanner;
import java.util.Random;
class Test02
{
    public static void main(String[] args)
    {
        Scanner input = new Scanner(System.in);
        Random r = new Random(1);//定义产生随机数的类
        System.out.printf("输入一个二位数字:");//提示输入
        int n = input.nextInt();//存储二位的整数
        int s = n / 10;//取十位
        int g = n % 10;//取个位
        int mRand = r.nextInt(90) + 10;
        mRand = 10;
        if((s == mRand / 10) && (g == mRand % 10))
        {
            System.out.println("奖金是10 000元。");
        }
        else if((g == mRand / 10) && (s == mRand % 10))
        {
            System.ou
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值