Java基础算法练习五题——(3)

11.有1、2、3、4四个数字,能组成多少个互不相同且无重复数字的三位数?都是多少? 

package com.myd.ex3;

public class CombineNum {

	public static void main(String[] args) {
		int sum=0;
		for(int a=1;a<=4;a++) {
			for(int b=1;b<=4;b++) {
				for(int c=1;c<=4;c++) {
					if(a!=b&&a!=c&&b!=c) {
						System.out.println(a+""+b+""+c);
						sum++;
					}
				}
			}
		}
		System.out.println(sum);
	}

}

12.企业发放的奖金根据利润提成。利润(I)低于或等于10万元时,奖金可提10%;利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可提成7.5%;20万到40万之间时,高于20万元的部分,可提成5%;40万到60万之间时高于40万元的部分,可提成3%;60万到100万之间时,高于60万元的部分,可提成1.5%,高于100万元时,超过100万元的部分按1%提成,从键盘输入当月利润I,求应发放奖金总数?

package com.myd.ex3;

import java.util.*;

public class GetAward {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int i = sc.nextInt();
		double award = 0;
		if (i < 0) {
			System.out.println("输入错误!");
		} else if (i >= 100) {
			award = 3.45 + 0.01 * (i - 100);
		} else {
			switch (i / 10) {
			case 0:
				award = 0.1 * i;
				break;
			case 1:
				award = 1 + 0.075 * (i - 10);
				break;
			case 2:
			case 3:
				award = 1.75 + 0.05 * (i - 20);
				break;
			case 4:
			case 5:
				award = 2.25 + 0.03 * (i - 40);
				break;
			case 6:
			case 7:
			case 8:
			case 9:
				award = 2.85 + 0.015 * (i - 60);
				break;
			}
		}
		System.out.println("奖金是" + award + "万元");
	}

}

13.一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?

package com.myd.ex3;

public class GuessNum {

	public static void main(String[] args) {
		int flag=0,num=1;
		while(flag!=1) {
			double test=Math.sqrt(num+100);
			if(Math.round(test)==test){
				double test2=Math.sqrt(num+268);
				if(Math.round(test2)==test2) {
					System.out.println(num);
					}
				}
			num++;
			if(num==100000) {
				flag=1;
			}
			}
		}
	}

14.输入某年某月某日,判断这一天是这一年的第几天?

package com.myd.ex3;

import java.util.*;

public class DayofYear {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);

		// 输入年月日
		System.out.println("请输入年月日,以空格隔开");
		int yy = sc.nextInt();
		int mm = sc.nextInt();
		int dd = sc.nextInt();
		int fl1 = 0, fl2 = 0, r = 0;
		
		// 判断输入区间,返回1继续判断
		fl1 = selInput(yy, mm, dd);
		if (fl1 == 1) {
			fl2 = selDoYear(yy, mm, dd);// 返回1则为闰年
		}else System.exit(0);

		// 计算日期
		int[] p={ 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
		if (fl2 == 1) {
			p[1]=29;
		}
		r = calcYear(mm, dd, p);
		System.out.println(mm + "月" + dd + "日处于" + yy + "年的第" + r + "天");
	}

	static int calcYear(int mm, int dd,int[] d) {
		int res = 0;
		if (mm != 1) {
			for (int i = 1; i < mm; i++) {
				res += d[i-1];
			}
			res += dd;
		} else
			res = dd;
		return res;
	}

	static int selInput(int yy, int mm, int dd) { // 判断输入区间
		int t = 0;
		if (yy <= 0) {
			System.out.println("年份输入错误!");
		} else if (mm <= 0 && mm > 12) {
			System.out.println("月份输入错误!");
		} else if (dd <= 0 || dd > 31) {
			System.out.println("日期输入错误!");
		} else t = 1;
		return t;
	}

	static int selDoYear(int yy, int mm, int dd) { // 若年份为闰年,则调整规则
		int flag = 0;
		if (yy % 4 == 0 && yy % 100 != 0 || yy % 400 == 0) {
			flag = 1; // 闰年标记
		}
		if (mm == 2 && dd > 29 && flag == 1) {
			System.out.println("输入错误!");
		} else if (mm == 2 && dd > 28) {
			System.out.println("输入错误!");
		}
		return flag;
	}

}

15.输入三个整数x,y,z,请把这三个数由小到大输出。

package com.myd.ex3;

import java.util.*;

public class SortNum {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int x = sc.nextInt();
		int y = sc.nextInt();
		int z = sc.nextInt();
		int[] p = { x, y, z };
		Arrays.sort(p);
		System.out.println(p[0]+" "+p[1]+" "+p[2]);
	}

}







  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值