章の演習(1)

第三章のタイトルは、もう少し、私はいくつかの重要な書き込みを選びました。

 のは、問題を分析してみましょう:

データ:ABC DELT R1 R2は、
手順
1.ユーザーが入力三つのパラメータABCに促される
2計算DELT = *のC B * B -4 *
3分析値DELT
    > 0 3.1 DELT
        出力二つの溶液
    3.2 DELT == 0
        溶液出力
    3.3 DELT <0
        ない実数解

import java.util.Scanner;
class  Demo03_01{
    public static void main(String[] args){
        //1.
        Scanner scanner=new Scanner(System.in);
        System.out.print("请输入a,b,c:");
        double a=scanner.nextDouble();
        double b=scanner.nextDouble();
        double c=scanner.nextDouble();
        //2.
        double delt=b*b-4*a*c;
        //3.
        if(delt>0){
            double r1=(-b+Math.sqrt(delt))/(2*a);
            double r2=(-b-Math.sqrt(delt))/(2*a);
            System.out.printf("r1=%.2f,r2=%.2f",r1,r2);
        }else if(delt==0){
            double r=(-b-Math.sqrt(delt))/(2*a);
            System.out.printf("r=%.2f",r);
        }else{
            System.out.println("无实数解!");
        }
    }
}

値のいくつかのセット、実行中のインスタンスを見て入力します。

请输入a,b,c:1.0 3 1
r1=-0.38r2=-2.62

ステップ:

1.利用者は、3桁を入力するよう求めています

2.あなたは3桁を見れば、それはその第一及び第三比べて回文場合

3.出力

もともと正シーケンスだったもの広げるために、我々は逆の順序でそれを入れて、この数を分割するような二同数として、番号を構成する、それが回文です。

12345を見てみましょう。

12345
12345 10%= 5 10分の12345 = 1234
1234 10%= 4 1234年から1210年= 123
123 10%= 3 10分の123 = 12
12%10 = 2 12月10日= 1
の1%10 = 1 1月10日= 0
54321
+ 1 5 * 10000 + 4×1000 + 3 * 100 + 2 * 10
(×1000 5 + 4 * 100 + 3 * 10 + 2)×10 + 1
×100((5 + 4 * 10 + 3) * 10 + 2)×10 + 1
(((5 * 10 + 4)* 10 + 3)×10 + 2)×10 + 1
((((0 * 10 + 5)×10 + 4)* 10 + 3)* 10 + 2)×10 + 1

I 0 =
私は10 + 5 * =。5 //
私は* = 10 + 4です。54 //
私は10 + 3 * =。543 //
私は* 10 + 2 =。5432 //
私は* 10 = 1です。// 54321

import java.util.Scanner;
class Demo03_04{
    public static void main(String[] args){
        //1.输入一个数字
        Scanner scanner=new Scanner(System.in);
        System.out.print("请输入一个数字:");
        int num=scanner.nextInt();
        int temp=num;
        //2.拼接出该数字的反序
        int sum=0;
        sum=sum*10+num%10;
        num/=10;
        sum=sum*10+num%10;
        num/=10;
        sum=sum*10+num%10;
        num/=10;
        if(sum==temp){
            System.out.println("是回文");
        }else{
            System.out.println("不是回文");
        }
    }
}

3桁の番号を入力し、その結果を見て:

请输入一个数字:121
是回文
请输入一个数字:234
不是回文

のは、問題を分析してみましょう:

データ:ランダムに生成されたデジタルコンピュータのユーザCOM USRのデジタル入力
    0 1 2
    ロック紙はさみ
手順:
1.ユーザーは番号入力するように促される
2コンピュータは、乱数発生
点を、2つの数値を比較勝ち負け3.
    COMを描きます== USR
    ユーザー勝利USR = 0 COM = 2 | USR = 1 COM = 0 | USR = 2 COM = 1
    ユーザ入力は、ユーザ入力休みです

乱数
    Math.random()[0,1.0)3 * - 。> [0,3.0) - >(int型)[0,3.0)
    ランダムnextInt(N-)

ここでは、コードは次のようになります。

import java.util.*;
class Demo03_06{
    public static void main(String[] args){
        //1.
        Scanner scanner=new Scanner(System.in);
        System.out.print("请输入 剪刀0 石头1 布2:");
        int usr=scanner.nextInt();
        //2.
        Random random=new Random();
        int com=random.nextInt(3);
        String usrStr="";
        String comStr="";
        switch(usr){
            case 0: //if usr==0
                usrStr="剪刀"; 
                break;
            case 1:// if usr==1
                usrStr="石头";
                break;
            case 2:// if usr==2
                usrStr="布";
                break;
        }
        switch(com){
            case 0: 
                comStr="剪刀"; 
                break;
            case 1:
                comStr="石头";
                break;
            case 2:
                comStr="布";
                break;
        }
        //3.
        if(usr==com){
            System.out.printf("用户是%s,电脑是%s,平局",usrStr,comStr);
        }else if(usr==0&&com==2 || usr==1&&com==0 || usr==2&&com==1){
            System.out.printf("用户是%s,电脑是%s,用户赢",usrStr,comStr);
        }else{
            System.out.printf("用户是%s,电脑是%s,用户输",usrStr,comStr);
        }
    }
}

いくつかのランダムな数字を入力し、このゲームで遊びます!

请输入 剪刀0 石头1 布2:1
用户是石头,电脑是布,用户输

3.7タイトル:

この質問は分析することです。

ステップ:年、月、日のプロンプトユーザー

輸出

注:1月と2月に式で使用される13歳から14歳です、彼は同時に年は前年に変更したと述べました。

import java.util.Scanner;
class Demo03_07{
    public static void main(String[] args){
        Scanner scanner=new Scanner(System.in);
        //1.先输入年份
        System.out.print("请输入年份:");
        int year=scanner.nextInt();
        //2.输入月份 1月 2月分别用13 14代替 同时year-1
        System.out.print("请输入月份:");
        int month=scanner.nextInt();
        //3.输入日期
        System.out.print("请输入日期:");
        int day=scanner.nextInt();

        //4.对特殊的1月和2月做处理
        if(month==1||month==2){
            month+=12;
            year-=1;
        }
        //5.套公式
        int h=(day+26*(month+1)/10+year%100+year%100/4+year/100/4+5*year/100)%7;
        
        switch(h){
            case 0:
                System.out.println("是周六");
                break;
            case 1:
                System.out.println("是周日");
                break;
            case 2:
                System.out.println("是周一");
                break;
            case 3:
                System.out.println("是周二");
                break;
            case 4:
                System.out.println("是周三");
                break;
            case 5:
                System.out.println("是周四");
                break;
            case 6:
                System.out.println("是周五");
                break;
        }
    }
}

出力結果のコードは次のとおりです。

请输入年份:2015
请输入月份:1
请输入日期:25
是周日

3.9タイトル:

分析:

それは点の座標をユーザに促します。

xとyの制御範囲。

三角形の外部に出力、ポイント、

三角形の内側の点

import java.util.Scanner;
class Demo03_09{
    public static void main(String[] args){
        Scanner scanner=new Scanner(System.in);
        //1.提示用户输入一个点的坐标
        System.out.print("请输入一个坐标:");
        double x=scanner.nextDouble();
        double y=scanner.nextDouble();
        //2.先大致判断一下坐标的范围
        //3.再精确的判断坐标的范围
        if(x>=0&&x<=200&&y<=-0.5*x+100){
            System.out.println("点再三角形内");
        }else{
            System.out.println("点再三角形外");
        }
    }
}
请输入一个坐标:100.5 25.5
点再三角形内


请输入一个坐标:100. 50.5
点再三角形外

分析:

大きな矩形の中心、幅と高さを入力します。

小さな四角形、幅と高さの中心を入力します。

ペイント、小さな長方形は、大きな矩形の条件に応じて決定されます。

輸出

import java.util.Scanner;
class Demo03_10{
    public static void main(String[] args){
        Scanner scanner=new Scanner(System.in);
        //1.先输入大矩形的中心,宽和高
        System.out.print("请输入第1个矩形的信息:");
        double x1=scanner.nextDouble();
        double y1=scanner.nextDouble();
        double w1=scanner.nextDouble();
        double h1=scanner.nextDouble();
        //2.再输入小矩形的中心,宽和高
        System.out.print("请输入第2个矩形的信息:");
        double x2=scanner.nextDouble();
        double y2=scanner.nextDouble();
        double w2=scanner.nextDouble();
        double h2=scanner.nextDouble();

        double inXMin=x1-(w1-w2)/2;
        double inXMax=x1+(w1-w2)/2;
        double inYMin=y1-(h1-h2)/2;
        double inYMax=y1+(h1-h2)/2;

        double outXMin=x1-(w1+w2)/2;
        double outXMax=x1+(w1+w2)/2;
        double outYMin=y1-(h1+h2)/2;
        double outYMax=y1+(h1+h2)/2;
        if(x2>=inXMin&&x2<=inXMax&&y2>=inYMin&&y2<=inYMax){
            System.out.println("小矩形在大矩形里面!");
        }else if(x2<=outXMin||x2>=outXMax||y2<=outYMin||y2>=outYMax){
            System.out.println("小矩形在大矩形外面!");
        }else{
            System.out.println("小矩形和大矩形相交!");
        }
    }
}

 入力し、いくつかの値は、結果を見て:

请输入第1个矩形的信息:2.5 4 2.5 43
请输入第2个矩形的信息:1.5 5 0.5 3
小矩形在大矩形里面!

C:\Users\ASUS\Desktop\xxl.code>javac Demo03_10.java

C:\Users\ASUS\Desktop\xxl.code>java Demo03_10
请输入第1个矩形的信息:1 2 3 5.5
请输入第2个矩形的信息:3 4 4.5 5
小矩形和大矩形相交!

 

 

 

 

 

 

 

 

 

 

 

 

 

 

发布了6 篇原创文章 · 获赞 0 · 访问量 77

おすすめ

転載: blog.csdn.net/weixin_45042315/article/details/104253536