0
点赞
收藏
分享

微信扫一扫

Java习题

言诗把酒 2022-02-01 阅读 48

编程实现如下功能

1)某人有100000元,每经过一次路口,需要交费,规则如下:

​ 当现金>50000时,每次交5%;

​ 当现金<= 50000时,每次交1000

​ 编程计算该人可以经过多少次路口,要求:使用while + break 方式完成。

public class one{
    public static void mian(){
        //思路分析
        //定义一个变量 int count 计算经过人数
        //定义一个变量 double money 初值 100000      
        /*根据要求,分析出三种情况
        	money > 50000
        	money >= 1000 && money <= 50000
        	money < 1000
        */
        int count = 0;
        double money = 100000;//初值
        while(true){//无限循环
            if(money > 50000){
                money = money * (1 - 0.05);
                count++;
            }else if(money >= 1000 && money <= 50000){
                money -= 1000;
                count++;
            }else if(money < 1000)//钱不够
                break;
        }
        //退出while循环,输出count
        System.out.println("100000元经过" +count +"次路口。");
    }
}

2)实现判断一个整数,属于那个范围:大于0;小于0;等于0;

public class two{
    public static void mian(){
        //思路分析
        //使用scanner对象输入一个整型
        //定义一个整数,使用if - else 判断
        Scanner myscanner = new Scanner(System.in);
        int num = myscanner.nextInt();
        if(num > 0){
            System.out.println(num + "大于0");
        }else if(num == 0){
            System.out.println(num + "等于0");
        }else{
			System.out.println(num + "小于0");
        }
    }
}

3)判断一个年份是否为闰年

public class three{
    public static void mian(){
        //思路分析
        //使用Scanner对象输入int 型
        //闰年:(1)年份能被 4 整除,但不能被 100 整除;(2)能被 400 整除
        Scanner myscanner = new Scanner(System.in);
        int year = myscanner.nextInt();
        if((year % 4 == 0 && year % 100 != 0) || year % 400 == 0){
            System.out.println(year + "是闰年");
        }else{
            System.out.println(year + "不是闰年");
        }
    }
}

4)判断一个整数是否是水仙花数,所谓水仙花数是指一个三位数,其各位上数字立方和等于其本身。例如:153 = 1 * 1 * 1 + 5 * 5 *5 + 3 * 3 * 3

public class four{
    public static void mian(){
        //思路分析
        //使用Scanner对象 输入 int num
        //取个位 num % 10
        //取十位 num / 10 %10
        //取百位 num / 100
        Scanner myscanner = new Scanner(System.in);
        int num = myscanner.nextInt();
        int a = num % 10;
        int b = num / 10 % 10;
        int c = num / 100;
        int sum =0;
        sum = a * a * a + b * b * b + c * c * c;
        if(sum == num)
        	System.out.println(num + "是水仙花数");
        else
            System.out.println(num + "不是水仙花数");
    }
}

5)看看下面代码输出什么?

public class five{
    public static void mian(){
        int m = 0,n = 3;
        if(m > 0){
			if(n > 2)
                System.out.println("OK1");
            else
                System.out.println("OK2");
        }
        //分析
        //m>0假直接结束if循环,所以没有输出
    }
}

6)输出1 - 100之间的不能被5整除,每五个一行。

public class six{
    public static void mian(){
        //思路分析
        //for循环1 - 100
        //过滤判断 不能被5整除的输出
        //定义一个变量计数 int count ,五个一行(count%5==0)
        int count = 0;
        for(int i = 1;i <= 100;i++){
            if(i % 5 != 0){
                System.out.print(i + "\t");//使用print不换行
                count++; 
            if(count % 5 == 0)
                System.out.println();//换行	
            }
        }
    }
}

7)输出小写的a - z 以及大写的 Z - A.

public class seven{
    public static void mian(){
        //思路分析
        //26个字母
        //一个循环 从 a - z
        //一个循环 从 A - Z
        for(char i = 'a';i <= 'z';i++)
            System.out.print(i + "\t");
        System.out.println();
        for(char i = 'Z';i >= 'A';i--)
            System.out.print(i + "\t");
    }
}

8)求出1 - 1/2 + 1/3 - 1/4…1/100的和

public class egiht{
    public static void mian(){
        //思路分析1
        //循环1 - 100
        //求和 int sum = 0;
        //符号变换 sign = - sign
        //定义一个变量 a 接收每一个变化的项
        double sum = 0;
        int sign = 1;//第一项保持为正
        double a = 1;//首项
        for(int i = 1;i <= 100;i++){
            a = sign * (1.0/i);
            sign = - sign;//变号
            sum += a;
        }
        System.out.print("和为" + sum);
    }
}
public class eight{
    public static void mian(){
        //思路分析2
        /*一共100数, 分子为1,分母从1 - 100
          当分母为奇数时,前面时+,是偶数时,前面是-
          我们可以使用for+判断即可完成
          把结果存放到double sum
          隐藏陷阱,分子写成1.0才能得到精确值
		*/
        double sum = 0;
        for(int i = 1;i <= 100;i++){
            if(i % 2 != 0)//奇数
                sum += 1.0 / i;
            else
                sum -= 1.0 / i;
        }
        System.out.print(sum);
    }
}

9)求 1 + (1 + 2)+(1 + 2 + 3)+(1 + 2 + 3 + 4)+…(1 + 2 +3 +…+100)的和

public class nine{
    public static void mian(){
        //思路分析1
        //for循环 1 - 100;
        //定义一个变量 int num 每项的和  初值为0  num = num + i
        //定义一个变量 int sum 求总和 初值为0  sum = sum + num
        int num = 0;
        int sum = 0;
        for(int i = 1;i <= 100;i++){
            //从1到当前值的和
            num += i;
            //求总和
            sum += num;
        }
        System.out.print(sum);
    }
}
public class nine{
    public static void mian(){
        //思路分析2
        /*一共100相加
          每一项数字逐渐增加
          双层循环
          i可以表示第几项,同时也是当前项的最后一个数
          sum记录累加和。
		*/
        double sum = 0;
        for(int i = 1;i <= 100;i++){
            for(int j = 1;j <= i;j++){//循环1-i
				sum += j;
			}
        }
        System.out.print(sum);
    }
}
举报

相关推荐

0 条评论