day1作业

Java编程解决经典算法问题
该程序使用Java实现了多个数学问题的解决方案,包括鸡兔同笼问题、百钱买百鸡问题、加减乘法计算器、计算圆周长和面积、评分系统以及寻找素数的数量。同时,还设计了一个猜数字游戏,用户有7次机会猜计算机生成的1到100之间的随机数。
import java.util.Random;
import java.util.Scanner;

public class Work {
    public static void main(String[] args) {
        //1.鸡兔同笼:上有35头,下有90足,问鸡兔各多少?编程计算出鸡兔数量为:
        //鸡:25
        //兔:10
        int num1;
        for(num1=1;num1<=35;num1++){
            if(num1*2+(35-num1)*4==90){
                System.out.println("鸡:"+num1);
                System.out.println("兔:"+(35-num1));
            }
        }

        //2.百钱买百鸡:公鸡五钱一只,母鸡三钱一只,小鸡一钱三只,现有百钱欲买百鸡,
        // 共有多多少种买法,编程计算出结果为4种
        int x,y,z;
        int count = 0;
        for(x=0;x<=100;x++){
            for(y=0;y<=100;y++){
                for(z=0;z<=100;z+=3){
        if(x + y + z ==100 && 5*x +3*y +z/3 ==100){
            count++;
        }}}}
        System.out.println("一共有"+count+"种买法");

        /*3.通过运行参数做一个加法,减法,乘法计算器方法,要求输入三个数,最后一个数字控制程序的算法。
        (1表示加法,2表示减法,3表示乘法)如下:
         参数: 123 12 1,时输出:123+12=135
         参数: 123 12 2,时输出:123-12=111
         参数:123 12 3,时输出:123x 12=1476
         参数: 123 12 4,时输出:参数错误*/
        int n1,n2,n3,r;
        System.out.println("参数:");
        Scanner sc1 = new Scanner(System.in);
        Scanner sc2 = new Scanner(System.in);
        Scanner sc3 = new Scanner(System.in);
        n1 = sc1.nextInt();
        n2 = sc2.nextInt();
        n3 = sc3.nextInt();
        switch (n3){
            case 1 :
                r = n1 + n2;
                System.out.println(n1+"+"+n2+"="+r);break;
            case 2 :
                r = n1 - n2;
                System.out.println(n1+"-"+n2+"="+r);break;
            case 3 :
                r = n1 * n2;
                System.out.println(n1+"*"+n2+"="+r);break;
            default:
                System.out.println("参数错误");
        }

        /*4.编写一个输入圆半径r,计算并返回圆周长。注意判断圆半径r是否大于零,如果小于0则返回0。如:输入:1,输出:6.48*/
        int r1;
        double wide;
        Scanner sc4 = new Scanner(System.in);
        r1 = sc4.nextInt();
            if (r1 > 0) {
                wide = 3.14 * 2 * r1;
                System.out.println(wide);
            }
        //5.编写一个输入圆半径r,计算圆面积的方法。如:输入:2,输出:12.56
        int r3;
        double area;
        Scanner sc5 = new Scanner(System.in);
        r3 = sc5.nextInt();
        area = 3.14* r3* r3;
        System.out.println(area);

        /*6.分别利用三目运算符,if-else完成如下评分业务,
        学习成绩大于等于90分的同学用A表示,,70-89分之间的用B表示,
        60-69分之间的用C表示, 小于60分用D表示。*/
        //三目运算符
        System.out.println("请输入成绩");
        double score;
        Scanner sc6 = new Scanner(System.in);
        score = sc6.nextDouble();
        System.out.println(score<60?'D':(score<70?'C':(score<90?'B':'A')));
        //if-else
        if(score>=90){
            System.out.println("A");
        }else if(score >=70 && score <90){
            System.out.println("B");
        }else if(score >=60 && score <70){
            System.out.println("C");
        }else{
            System.out.println("D");
        }
        /*7.编写一个程序用来计算2~1000之间的素数的个数,最后输出结果。(素数(prime number)又称质数,有无限个。
        一个大于1的自然数,除了1和它本身外,不能被其他自然数整除,如:7和11) 。*/
        int i = 2;  // i 是起始变量
        boolean prime; // prime 用来判断是否存在否定素数的因子
        int amount=0;   //累加器,统计素数个数

        while(i<=1000) {
            //这里先重置一下布尔值的默认值,以便后面判断是否存在否定因子
            prime = true;
            //进入循环,判断是否存在否定因子
            for(int n = 1 ; n < i ; n++ ) {
                //如果存在否定素数的因子,改变默认布尔值
                if(i%n == 0 && n!=1  )prime = false;

            }
            if(prime)amount++;  //素数累加器自增
            //if(prime)System.out.print(i+"\t"); //判断是否是素数

            i++;
        }
        System.out.println(amount);

        /*8.设计一个猜数字小游戏,计算机生成出一个[1,100]之间的随机数,人输入自己猜的数字,计算机给出对应的提示信息,
        如:猜大了或猜小了。限制7次机会人猜出计算机出的数字。备注:Math.random()会得到一个[0,1)之间的随机浮点数。*/
        Random r2 =new Random();
        int lucknum= r2.nextInt(101);
        Scanner sc7 = new Scanner(System.in);
        int co =0;
        while(true) {
            System.out.println("请输入");
            int guessnum = sc7.nextInt();
            co++;
            if (guessnum > lucknum) {
                System.out.println("您猜的数字太大啦");
            } else if (guessnum < lucknum) {
                System.out.println("您猜的数字太小啦");
            } else {
                System.out.println("恭喜您,猜对啦");
                break;
            }

            if(co==7){
                System.out.println("您的七次机会已用完");
                break;
            }
        }
        
    }
    }

评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值