`

其他问题

 
阅读更多

1.

/*
	 * 题目:输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。
	 */
	public static void print() {
		String src = "abc123ABC!@#  \ndefDEF456&\r*";

		if (src != null && src.length() > 0) {
			StringBuffer lowerChar = new StringBuffer();
			StringBuffer upperChar = new StringBuffer();
			StringBuffer numberChar = new StringBuffer();
			StringBuffer otherChar = new StringBuffer();

			for (char c : src.toCharArray()) {
				if (c >= 'a' && c <= 'z') {
					lowerChar.append(c);
				} else if (c >= 'A' && c <= 'Z') {
					upperChar.append(c);
				} else if (c >= '0' && c <= '9') {
					numberChar.append(c);
				} else {
					otherChar.append(c);
				}
			}
			System.out.println("小写字母" + lowerChar.length() + "个,为:" + lowerChar.toString());
			System.out.println("大写字母" + upperChar.length() + "个,为:" + upperChar.toString());
			System.out.println("数字" + numberChar.length() + "个,为:" + numberChar.toString());
			System.out.println("其他字符" + otherChar.length() + "个,为:" + otherChar.toString());
		}

	}

 2.

/*
	 * 题目:求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加)
	 */
	public static void print2(int a, int count) {
		long start = System.currentTimeMillis();
		BigInteger total = BigInteger.valueOf(0);
		String str = "";
		BigInteger current = BigInteger.valueOf(a);
		for (int i = 0; i < count; i++) {
			total = total.add(current);
			str += current;
			if (i < (count - 1)) {
				str += "\n+";
			} else {
				str += "\n=";
			}
			current = current.multiply(BigInteger.valueOf(10)).add(BigInteger.valueOf(a));
		}
		long end = System.currentTimeMillis();
		System.out.println(str + total + "\n用时:" + (end - start) + "毫秒");
	}

	/*
	 * 题目:求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加)
	 */
	public static void print3(int a, int count) {
		long start = System.currentTimeMillis();
		BigInteger total = BigInteger.valueOf(0);
		String str = "";
		String temp = "" + a;
		for (int i = 0; i < count; i++) {
			BigInteger current = new BigInteger(temp);
			total = total.add(current);
			str += temp;
			if (i < (count - 1)) {
				str += "\n+";
			} else {
				str += "\n=";
			}
			temp += a;
		}
		long end = System.currentTimeMillis();
		System.out.println(str + total + "\n用时:" + (end - start) + "毫秒");
	}

	public static void main(String[] args) {
		T2.print2(2, 30);
		T2.print3(2, 30);
	}

 

输出:
2
+22
+222
+2222
+22222
+222222
+2222222
+22222222
+222222222
+2222222222
+22222222222
+222222222222
+2222222222222
+22222222222222
+222222222222222
+2222222222222222
+22222222222222222
+222222222222222222
+2222222222222222222
+22222222222222222222
+222222222222222222222
+2222222222222222222222
+22222222222222222222222
+222222222222222222222222
+2222222222222222222222222
+22222222222222222222222222
+222222222222222222222222222
+2222222222222222222222222222
+22222222222222222222222222222
+222222222222222222222222222222
=246913580246913580246913580240
用时:2毫秒
2
+22
+222
+2222
+22222
+222222
+2222222
+22222222
+222222222
+2222222222
+22222222222
+222222222222
+2222222222222
+22222222222222
+222222222222222
+2222222222222222
+22222222222222222
+222222222222222222
+2222222222222222222
+22222222222222222222
+222222222222222222222
+2222222222222222222222
+22222222222222222222222
+222222222222222222222222
+2222222222222222222222222
+22222222222222222222222222
+222222222222222222222222222
+2222222222222222222222222222
+22222222222222222222222222222
+222222222222222222222222222222
=246913580246913580246913580240
用时:1毫秒
 
3.
/*
	 * 题目:一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在 第10次落地时,共经过多少米?第10次反弹多高?
	 */
	public static void print6() {
		long start = System.currentTimeMillis();
		double hight = 100;
		double rate = 0.5;
		int count = 10;
		// 第一次落地
		double total = hight;
		String str = "" + hight;
		hight *= rate;
		for (int i = 2; i <= count; i++) {
			total += 2 * hight;
			str += "+" + (hight * 2);
			hight *= rate;
		}
		long end = System.currentTimeMillis();
		System.out.println(str + "=" + total + ",hight=" + hight + ",用时:" + (end - start) + "毫秒");
	}

	/*
	 * 题目:一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在 第10次落地时,共经过多少米?第10次反弹多高?
	 * 100*(1+1+1/2+1/4+1/8+...)
	 */
	public static void print7() {
		long start = System.currentTimeMillis();
		double hight = 100;
		double rate = 0.5;
		int count = 10;
		// 第一次落地
		double total = hight;
		String str = "" + hight;
		double current = hight;
		for (int i = 2; i <= count; i++) {
			total += current;
			str += "+" + current;
			current = current * (2 * rate) / 2;

		}
		long end = System.currentTimeMillis();
		System.out.println(str + "=" + total + ",hight=" + current / 2 + ",用时:" + (end - start) + "毫秒");
	}

	public static void main(String[] args) {
		T2.print6();
		T2.print7();
	}
 输出:
100.0+100.0+50.0+25.0+12.5+6.25+3.125+1.5625+0.78125+0.390625=299.609375,hight=0.09765625,用时:1毫秒
100.0+100.0+50.0+25.0+12.5+6.25+3.125+1.5625+0.78125+0.390625=299.609375,hight=0.09765625,用时:0毫秒
 
4.
/*
	 * 有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?
	 */
	public static void print8() {
		long start = System.currentTimeMillis();
		int n = 0;
		for (int i = 1; i <= 4; i++) {
			for (int j = 1; j <= 4; j++) {
				for (int k = 1; k <= 4; k++) {
					if (i != j && i != k && j != k) {
						System.out.print("" + i + j + k + ",");
						n++;
					}
				}
			}
		}
		long end = System.currentTimeMillis();
		System.out.println("共" + n + "个,用时:" + (end - start) + "毫秒");
	}

	/*
	 * 有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?
	 */
	public static void print9() {
		long start = System.currentTimeMillis();
		int n = 0;
		for (int i = 1; i <= 2; i++) {
			for (int j = i + 1; j <= 3; j++) {
				for (int k = j + 1; k <= 4; k++) {
					if (i != j && i != k && j != k) {
						n += 6;
						System.out.print("" + i + j + k + ",");
						System.out.print("" + i + k + j + ",");
						System.out.print("" + j + i + k + ",");
						System.out.print("" + j + k + i + ",");
						System.out.print("" + k + i + j + ",");
						System.out.print("" + k + j + i + ",");
					}
				}
			}
		}
		long end = System.currentTimeMillis();
		System.out.println("共" + n + "个,用时:" + (end - start) + "毫秒");
	}

	/*
	 * 有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?
	 */
	public static void print10() {
		long start = System.currentTimeMillis();
		int n = 0;
		for (int i = 123; i <= 432; i++) {
			String str = "" + i;
			if (str.indexOf("0") < 0 && str.indexOf("5") < 0 && str.indexOf("6") < 0 && str.indexOf("7") < 0 && str.indexOf("8") < 0
					&& str.indexOf("9") < 0) {
				if (str.charAt(0) != str.charAt(1) && str.charAt(0) != str.charAt(2) && str.charAt(1) != str.charAt(2)) {
					System.out.print(str + ",");
					n++;
				}
			}
		}
		long end = System.currentTimeMillis();
		System.out.println("共" + n + "个,用时:" + (end - start) + "毫秒");
	}

	public static void main(String[] args) {
		T2.print8();
		T2.print9();
		T2.print10();
	}
 输出:
123,124,132,134,142,143,213,214,231,234,241,243,312,314,321,324,341,342,412,413,421,423,431,432,共24个,用时:1毫秒
123,132,213,231,312,321,124,142,214,241,412,421,134,143,314,341,413,431,234,243,324,342,423,432,共24个,用时:0毫秒
123,124,132,134,142,143,213,214,231,234,241,243,312,314,321,324,341,342,412,413,421,423,431,432,共24个,用时:1毫秒
 
 5.
/*
	 * 题目:企业发放的奖金根据利润提成。利润(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,求应发放奖金总数?
	 */
	public static void print11(double profits) {
		double[][] arr = { { 0, 0.1 }, { 100000, 0.075 }, { 200000, 0.05 }, { 400000, 0.03 }, { 600000, 0.015 }, { 1000000, 0.01 } };
		double bonus = 0;
		String str = "";
		long start = System.currentTimeMillis();
		for (int i = arr.length - 1; i >= 0; i--) {
			if (profits > arr[i][0]) {
				bonus += (profits - arr[i][0]) * arr[i][1];
				str += "" + (profits - arr[i][0]) + "*" + arr[i][1];
				if (i != 0) {
					str += "+";
				}
				profits = arr[i][0];
			}
		}
		long end = System.currentTimeMillis();
		str = bonus + "=" + str;
		System.out.println(str + ",用时:" + (end - start) + "毫秒");
	}

	/*
	 * 题目:企业发放的奖金根据利润提成。利润(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,求应发放奖金总数?
	 */
	public static void print12(double profits) {
		long start = System.currentTimeMillis();
		double bonus = 0;
		double bonus0 = 100000 * 0.1;
		double bonus1 = bonus0 + 100000 * 0.075;
		double bonus2 = bonus1 + 200000 * 0.05;
		double bonus4 = bonus2 + 200000 * 0.03;
		double bonus6 = bonus4 + 400000 * 0.015;
		if (profits > 1000000) {
			bonus = (profits - 1000000) * 0.01 + bonus6;
		} else if (profits > 600000) {
			bonus = (profits - 600000) * 0.015 + bonus4;
		} else if (profits > 400000) {
			bonus = (profits - 400000) * 0.03 + bonus2;
		} else if (profits > 200000) {
			bonus = (profits - 200000) * 0.05 + bonus1;
		} else if (profits > 100000) {
			bonus = (profits - 100000) * 0.075 + bonus0;
		} else {
			bonus = profits * 0.1;
		}
		long end = System.currentTimeMillis();
		System.out.println(bonus + ",用时:" + (end - start) + "毫秒");
	}

	public static void main(String[] args) {
		T2.print11(50000);
		T2.print11(120000);
		T2.print11(240000);
		T2.print11(450000);
		T2.print11(800000);
		T2.print11(1200000);
		T2.print12(50000);
		T2.print12(120000);
		T2.print12(240000);
		T2.print12(450000);
		T2.print12(800000);
		T2.print12(1200000);
	}
 输出:
5000.0=50000.0*0.1,用时:1毫秒
11500.0=20000.0*0.075+100000.0*0.1,用时:0毫秒
19500.0=40000.0*0.05+100000.0*0.075+100000.0*0.1,用时:0毫秒
29000.0=50000.0*0.03+200000.0*0.05+100000.0*0.075+100000.0*0.1,用时:0毫秒
36500.0=200000.0*0.015+200000.0*0.03+200000.0*0.05+100000.0*0.075+100000.0*0.1,用时:0毫秒
41500.0=200000.0*0.01+400000.0*0.015+200000.0*0.03+200000.0*0.05+100000.0*0.075+100000.0*0.1,用时:0毫秒
5000.0,用时:0毫秒
11500.0,用时:0毫秒
19500.0,用时:0毫秒
29000.0,用时:0毫秒
36500.0,用时:0毫秒
41500.0,用时:0毫秒
 6.
/*
	 * 题目:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?
	 * 而且这两个平方数相差不超过168,即这个数的平方根不会超过84+1,即85(85*85-84*84=169)
	 * 完全平方数不能是负数
	 * 即第一个的平方根在0~84之间,第二个的平方根在1~85之间
	 */
	public static void print13() {
		long start = System.currentTimeMillis();
		int n = 0;
		for (int i = 0; i < 84; i++) {
			for (int j = 1; j < 85; j++) {
				if ((i * i - 100) == (j * j - 268)) {
					n = i * i - 100;
					System.out.print(n + ",");
				}
			}
		}
		long end = System.currentTimeMillis();
		System.out.println("用时:" + (end - start) + "毫秒");
	}

	public static void main(String[] args) {
		T2.print13();
	}
 输出:
-99,21,261,1581,用时:1毫秒
 
分享到:
评论

相关推荐

    参考资料-1.9 与本工程有关的其它问题.zip

    "参考资料-1.9 与本工程有关的其它问题.zip"这个文件名表明这可能是一个包含与某个工程项目相关问题解答的压缩文件。让我们深入探讨一下这个标题、描述以及压缩包内的文件可能涵盖的内容。 标题中的“参考资料”...

    与本工程有关的其它问题.doc

    与本工程有关的其它问题.doc

    模拟电子技术基础:第20讲 放大电路中反馈的其它问题.ppt

    模拟电子技术基础:第20讲 放大电路中反馈的其它问题.ppt

    员工的其他问题及其处理压力的种类、起因和控制方法.pptx

    员工的其他问题及其处理压力的种类、起因和控制方法.pptx

    模拟电子技术基础:第20讲 放大电路中反馈的其它问题 (2).ppt

    模拟电子技术基础:第20讲 放大电路中反馈的其它问题 (2).ppt

    n后问题求解

    解决N皇后问题的过程中,不仅可以加深对回溯法的理解,还可以进一步将这种方法应用到其他问题中,比如迷宫问题、马踏棋盘问题等。这些问题都具有相似的特点:需要找到一条或多条路径或布局方案,而这些路径或方案...

    YYCMS影视网站源码

    这套影视源码轻便简单,界面美观,后台、资源、接口等需要自己添加,有些方面也可能又存在的其它问题,需要采集资源等做好之后才能验证,故无法保障说明没有其他问题, 有对接公众号功能,会员充值、对接第三方支付...

    QB-F01软件问题报告

    可能的问题来源包括程序(代码逻辑错误)、数据库(数据不一致或查询问题)、文件(读取、写入或存储问题)以及其他因素(如用户界面交互、系统配置等)。这有助于开发人员快速确定问题所在的领域。 2. **问题描述*...

    cpc常见问题解答完整版.doc

    【cpc常见问题解答完整版】文档主要涵盖了与CPC(可能是专利申请系统或相关软件)相关的各种技术问题和解决方案,特别关注了升级安装、操作使用、校验规则、批量接口、著录变更以及其它常见问题。以下是这些知识点的...

    首席赚钱省钱专家小程序1.5.8+前端+修复商品和搜索关键词显示异常的问题.zip

    此次更新***需要***上传小程序审核 如有其它问题,请及时联系客服帮您处理 对后台小程序设置-其他设置-首页商品列表布局 进行重新设置 1.[紧急修复] 商品显示和搜索关键词显示异常的问题 版本号:1.5.7 – 赚钱...

    管家婆常见问题解决处理方案.pdf

    八、其他问题 * 问题:零售单按照批次销售? * 解决方案:POS版本零售开票的时候不能选择批次,直接通过零售设置--出库规则进行批次出库,软件自带的POS模式、普通模式下,直接过情 况可以选择批次,并且商品的成本...

    售后服务问题处理流程规范

    - **其他问题**:包括但不限于软件异常、数据库错误、网络问题等。 #### 二、问题处理原则 1. **一般咨询**:对于简单的使用咨询,工作人员将通过电话或微信立即给予解答。 2. **问题与需求处理顺序**:优先处理...

    CPC最新客户端升级问题结局方法.pdf

    在使用CPC客户端时,可能会遇到一些其他问题,如客户端升级失败、无法打开客户端程序等。解决方法是检查系统设置、网络连接和客户端安装情况,并按照正确的操作步骤进行操作。 该文档提供了详细的解决方案和方法,...

    virtual box配置常见问题及其解决方案.pdf

    在使用Virtual Box时,可能会遇到其他一些问题,例如虚拟机无法启动、网络连接问题等。解决办法是,检查虚拟机的配置,确保虚拟机的网络配置正确,检查网络连接是否正常。 Virtual Box的配置问题可以通过简单的解决...

    完美解决win10开机黑屏问题

    如果你发现禁用ULPS后系统运行不稳定或者有其他问题,可以使用这个文件恢复原来的设置。 3. **如何操作**: 在使用这两个注册表文件之前,请确保你已经备份了重要的数据,因为修改注册表可能会对系统产生影响。...

    求解连续优化问题的多策略动态果蝇优化算法.docx

    如财务困扰模型求解、多维背包问题、神经网络训练、连续数学函数优化问题、电荷预测、PID 控制器参数调整、半导体最终测试、联合补货问题等,以及科学和工程领域中的许多其他问题。 三、多策略动态果蝇优化算法 ...

Global site tag (gtag.js) - Google Analytics