`

其他问题

 
阅读更多

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

    宝洁面试经典八大问题(附答案范例).doc

    其它问题 在宝洁的口试中,其他问题可能包括:Describe a situation where you had to work with someone who had a different work style than yours、Tell me about a time when you had to adapt to a new ...

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

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

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

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

    YYCMS影视网站源码

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

    QB-F01软件问题报告

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

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

    首席赚钱省钱赚钱小程序源码更新介绍: 版本号:1.5.8 – 赚钱单开版 此次更新需要上传小程序审核 如有其它问题,请及时联系客服帮您处理 对后台小程序设置-其他设置-首页商品列表布局 进行重新设置1.[紧急修复] ...

    wdfldr.sys文件25kb的,适合解决E71套件问题或其他问题

    3、在c:\windows\system32\drivers目录下找到一个文件:wdfldr.sys(WDFLDR.SYS) 看一下这个文件的大小,出现不能连接,找不到驱动的的关键就是这个文件,这个文件一般大小是26KB,如果文件是26KB,那就一定会连接不...

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

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

    82烙饼问题.ppt

    优化烙饼问题 通过这节课,我们可以学习到数学广角——优化烙饼问题的思想。优化烙饼问题是指在烙饼时,如何...• 我们可以通过这种思想,解决其他问题,例如安排小东和爸爸、妈妈一起玩电脑小游戏,才能让时间最少。

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

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

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

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

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

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

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

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

Global site tag (gtag.js) - Google Analytics