Java编程训练题1

训练题

题目1

import java.util.Scanner;

/*
数据:a b c d e f x y
步骤:1.提示用户输入数字
     2.计算结果
     3.输出

*/
class D04_1{
    public static void main(String[]args){
    //1
    Scanner scanner = new Scanner(System.in);
    System.out.print("请输入a b c d e f:");//提示输入a b c d e f
    double a = scanner.nextDouble();
    double b = scanner.nextDouble();
    double c = scanner.nextDouble();
    double d = scanner.nextDouble();
    double e = scanner.nextDouble();
    double f = scanner.nextDouble();
    //2.计算
    double x=(e*d-b*f)/(a*d-b*c);
    double y=(a*f-e*c)/(a*d-b*c);
    //判断及输出
    if((a*d-b*c)==0){
        System.out.println("方程式无解");
    }else{
        System.out.println("x is"+x+",and y is"+y);
    }
    }
}

题目2

import java.util.Random;
import java.util.Scanner;

/*
数据:随机数 用户输入的 比较
步骤:
1.提示用户输入一个两位数
2.系统生成两位随机数
3.比较系统生成的数与用户输入的
*/

class D04_2{
    public static void main(String[]args){
    //1
    Scanner scanner = new Scanner(System.in);
    System.out.print("请输入一个两位数:");//提示用户输入一个两位数
    int num = scanner.nextInt();
    int F = num;
    Random random = new Random();
    int sum = random.nextInt(100);//产生一个随机的二位数
    int temp =sum;
    int a = sum%10;
    int b =sum;
    int c = num%10;
    int d = num;
    //判断 及输出
    if(F==temp){
        System.out.print("恭喜中奖10000美元");
    }else if(a==c&&b==d){
        System.out.print("恭喜中奖3000美元");
    }else if(a==d||a==c||b==c||c==d){
        System.out.print("恭喜中奖1000美元");
    }else{
        System.out.print("对不起,您未中奖");
    }
    }
}

题目3

本题的关键在于一月与二月用13、14表示,同时年数减一。

import java.util.Scanner;
/*
数据:输入的数 公式
步骤:
1.提示用户输入
2.判断是否为一、二月
3.依据公式计算
*/  
class D04_3{
  public static void main(String[]args){
    //1
    Scanner scanner = new Scanner(System.in);
    System.out.println("请输入年份:"); //提示输入年份
      int year=scanner.nextInt(); 
    System.out.println("请输入月份:"); //提示输入月份   
    int month=scanner.nextInt(); 
    System.out.println("请输入日期:"); //提示输入日期
    int day =scanner.nextInt(); 
    //2.判断是否为一月或者二月
    if(month==1){
       year =year-1;
       month=13;
    }else if(month==2){
        year =year-1;
        month=14;
    }else{
        year=year;
        month=month;
    }
    int j=Math.abs(year/100);
    int k=year%100;
    int today=(day+ (26*(month+1))/10+k+k/4+j/4+5*j)%7;//带入公式计算
    System.out.println("today is"+today);
    String todayStr="";
    //每个数字所代表的星期几
    switch(today){
        case 0:
        todayStr="星期六";
        break;
        case 1:
        todayStr="星期天";
        break;
        case 2:
        todayStr="星期一";
        break;
        case 3:
        todayStr="星期二";
        break;
        case 4:
        todayStr="星期三";
        break;
        case 5:
        todayStr="星期四";
        break;   
        case 6:
        todayStr="星期五";
        break; 
    }
     System.out.printf("今天是%s",todayStr);//输出
  }
 
}

题目4

此题主要判断点在三角形内的极限条件

依据图形先判断出x,y 的大致取值范围,再由线性代数判断y的精确范围。

import java.util.Scanner;

class D04_4{
    public static void main(String[] args){
        Scanner scanner = new Scanner(System.in);
        System.out.print("请输入坐标x y:");//请输入坐标
        double x =scanner.nextDouble();
        double y =scanner.nextDouble();
        //确定大致范围
        if(x<=200&&x>=0){
        //确定精确范围
            if(y<=-0.5*x+100){
                 System.out.print("点在三角内!") ;
            } 
        }else{
            System.out.print("点在三角外!");
        }
    }
}

题目5

 此题首先要判断出在大矩形内与外的极限情况。如下图

import java.util.Scanner;
class D04_5{
    public static void main(String[] args){
        Scanner scanner = new Scanner(System.in);
        System.out.print("请输入r1的中心x1,y1,h1和w1:");//提示输入r1的数据
        double x1 =scanner.nextDouble();
        double y1 =scanner.nextDouble();
        double h1 =scanner.nextDouble();
        double w1 =scanner.nextDouble();
        System.out.print("请输入r2的中心x2,y2,h2和w2:");//提示输入r2的数据
        double x2 =scanner.nextDouble();
        double y2 =scanner.nextDouble();
        double h2 =scanner.nextDouble();
        double w2 =scanner.nextDouble();
        double a=Math.abs(x1-x2);
        double b=Math.abs(y1-y2);
        //判断及输出
        if(a+h2/2.0<=h1/2.0&&b+w2/2.0<=w1/2.0){
            System.out.print("第二个矩形在第一个矩形内!");
        }else if(a>=(h1+h2)*(1.0/2)||b>=(w1+w2)*(1.0/2)){
            System.out.print("第二个矩形在第一个矩形外!");
        }else{
            System.out.print("第二个矩形和第一个矩形重叠!");
        }
    }
}

题目6

import java.util.Scanner;

/*                       k         j         i
          1              6         1         1
        2 1 2            4         2         2
      3 2 1 2 3          2         3         3
    4 3 2 1 2 3 4        0         4         4
*/
class D04_6{

    public static void main(String[] args){
        Scanner scanner =new Scanner(System.in);
        System.out.print("请输入一个数字:");//提示用户输入
        int num = scanner.nextInt();
        for(int i=1;i<=num;i++){//定义行数小于输入的数字
            for(int k=1;k<=num-i;k++){//定义输入的空格,占三位,空格数随行数增加而依次减少
                System.out.print("   ");
            }
            for(int j=-(i-1);j<=i-1;j++){ //定义数字j,j随着行数的增加而逐行增加
                System.out.printf("%3d",Math.abs(j)+1);//输出j的绝对值加一,并规定每个数字占三位
            }
            System.out.println();
        } 
    }
}
   
发布了13 篇原创文章 · 获赞 1 · 访问量 241

猜你喜欢

转载自blog.csdn.net/Yi_nian_yu_dian/article/details/104233624