`
viking.liu
  • 浏览: 53666 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

google笔试题 人民币问题

阅读更多
方法一:递归方法
对 charge[]={1,5,10,20,50,100}标号 用i表示 0,1,2,3,4
f(n,i)表示n由后面第i到4种零钱的组合结果
f(n,0)=f(n-charge[0],0)+f(n-charge[1],1)+f(n-charge[2],2)+f(n-charge[3],3)+f(n-charge[4],4)

f(n,i)=f(n-charge[i],i)+...+f(n-charge[4],4)

public class Money {

	public static int[] charge = { 1, 5, 10, 20, 50, 100 };

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		int sum = 100;
		int m = money(sum, 0, sum + "=");
		System.out.println(m);
	}

	public static int money(int n, int s, String path) {
		if (n == 0) {
			System.out.println(path);
			return 1;
		}
		int count = 0;
		for (int i = s; i < charge.length; i++) {
			if (n >= charge[i]) {
				count += money(n - charge[i], i, path+ charge[i] + "+" );
			}
		}
		return count;
	}
}



方法二:暴力破解法
package com.viking.dynamic;

public class Money2 {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		System.out.println(money(100));
	}

	public static int money(int n) {
		int count = 0;
		for (int i = n % 5; i <= n; i += 5) {
			int f = n - i;
			if (f == 0) {
				count++;
				print(n, i, 0, 0, 0, 0, 0);
			} else if (f % 5 == 0) {
				for (int j = 0; j <= f; j += 5) {
					int g = f - j;
					if (g == 0) {
						count++;
						print(n, i , j, 0, 0, 0, 0);
					} else if (g % 10 == 0) {
						for (int k = 0; k <= g; k += 10) {
							int h = g - k;
							if (h == 0) {
								count++;
								print(n, i, j, k, 0, 0, 0);
							} else if (h % 10 == 0 ) {
								for (int t = 0; t <= h; t += 20) {
									int l = h - t;
									if (l == 0) {
										count++;
										print(n, i , j, k, t, 0, 0);
									} else if (l % 50 == 0) {
										for (int r = 0; r <= l; r += 50) {
											int p = l - r;
											if (p == 0) {
												count++;
												print(n, i , j, k, t, r, 0);
											} else if (p % 100 == 0) {
												count++;
												print(n, i , j, k, t, r, p);
											}
										}
									}
								}
							}
						}
					}
				}
			}
		}
		return count;
	}

	public static void print(int n, int n1, int n5, int n10, int n20, int n50,
			int n100) {
		String path = n + "=";
		boolean change = false;
		if (n1 != 0) {
			path += "1*" + n1 / 1;
			change = true;
		}
		if (n5 != 0) {
			if (change) {
				path += "+";
			}
			path += "5*" + n5 / 5;
			change = true;
		}
		if (n10 != 0) {
			if (change) {
				path += "+";
			}
			path += "10*" + n10 / 10;
			change = true;
		}
		if (n20 != 0) {
			if (change) {
				path += "+";
			}
			path += "20*" + n20 / 20;
			change = true;
		}
		if (n50 != 0) {
			if (change) {
				path += "+";
			}
			path += "50*" + n50 / 50;
			change = true;
		}
		if (n100 != 0) {
			if (change) {
				path += "+";
			}
			path += "100*" + n100 / 100;
			change = true;
		}
		System.out.println(path);
	}
}

分享到:
评论

相关推荐

    嵌入式软件笔试题合集.zip

    嵌入式软件笔试题合集嵌入式软件笔试题合集嵌入式软件笔试题合集嵌入式软件笔试题合集嵌入式软件笔试题合集嵌入式软件笔试题合集嵌入式软件笔试题合集嵌入式软件笔试题合集嵌入式软件笔试题合集嵌入式软件笔试题合集...

    C++面试题笔试题C++ 数据结构算法笔试题资料合集.zip

    C++面试题笔试题C++ 数据结构算法笔试题资料合集: 50个C、C++面试题.pdf C++ 数据结构、算法笔试题.docx C++基础面试题.docx C++开发工程师面试题库.docx C++技能测试试卷一及答案.docx C++技能测试试卷二及答案....

    中兴笔试题 中兴笔试题 中兴笔试题 中兴笔试题

    中兴笔试题 中兴笔试题 中兴笔试题 中兴笔试题 v中兴笔试题 中兴笔试题 ...中兴笔试题 中兴笔试题 中兴笔试题 中兴笔试题中兴笔试题 中兴笔试题 中兴笔试题 中兴笔试题 中兴笔试题 中兴笔试题 中兴笔试题 中兴笔试题

    java笔试题笔试题

    java笔试题 java笔试题 java笔试题 java笔试题 java笔试题 java笔试题 java笔试题 java笔试题 java笔试题 java笔试题 java笔试题 java笔试题 java笔试题 java笔试题 java笔试题 java笔试题 java笔试题 java笔试题 ...

    华信笔试题笔试题笔试题

    大连华信去年的笔试题,可以给各位即将工作的同学一些参考

    C#笔试题大全C#笔试题大全C#笔试题大全.

    C#笔试题大全C#笔试题大全.C#笔试题大全.C#笔试题大全.C#笔试题大全.C#笔试题大全.C#笔试题大全.C#笔试题大全.C#笔试题大全.C#笔试题大全.C#笔试题大全.C#笔试题大全.C#笔试题大全.C#笔试题大全.C#笔试题大全.,让你...

    google 笔试题 2012

    4. 组合问题:第四题是组合计数问题。从19本书中选择不相邻的5本,可以视作插空问题,使用插板法求解。总共有15个空隙,可以插入4个板子,因此总方案数为C(15,4)。计算得到D.360360。 5. 财务计算:第六题涉及复利...

    java国内部分大公司面试题附加Google笔试题集合.rar

    java华为面试题、百度试题、腾讯试题、网易笔试题、迅雷笔试题、中兴面试题、Google笔试题

    2013谷歌笔试题

    【谷歌笔试题】是全球科技巨头谷歌在招聘过程中对求职者进行能力评估的重要环节,这些题目旨在测试候选人的逻辑思维、编程技能、问题解决能力和创新思维。谷歌笔试题的难度和多样性反映了公司对于人才的高标准和对...

    销售人员笔试试题.docx

    2. 销售人员笔试题的分类:销售人员笔试题可以分为选择题、简答题和论述题等。 3. 销售人员笔试题的特点:销售人员笔试题具有多样性、实践性和策略性等特点。 销售人员笔试题的知识点 1. 市场营销战略:无差异...

    c++笔试题汇总c++笔试题汇总.rar

    c++笔试题汇总.rarc++笔试题汇总.rarc++笔试题汇总.rarc++笔试题汇总.rarc++笔试题汇总.rarc++笔试题汇总.rarc++笔试题汇总.rarc++笔试题汇总.rarc++笔试题汇总.rarc++笔试题汇总.rarc++笔试题汇总.rar

    赛融笔试题.jpg赛融笔试题.jpg赛融笔试题.jpg

    赛融笔试题.jpg赛融笔试题.jpg赛融笔试题.jpg赛融笔试题.jpg赛融笔试题.jpg赛融笔试题.jpg赛融笔试题.jpg赛融笔试题.jpg赛融笔试题.jpg赛融笔试题.jpg赛融笔试题.jpg赛融笔试题.jpg赛融笔试题.jpg赛融笔试题.jpg赛融...

    google笔试题

    以上题目展示了谷歌笔试题的特点:侧重于考察候选人的算法设计能力和解决问题的思维方式。通过这些题目,不仅能够检验应聘者的基础理论知识掌握程度,还能评估其在实际问题面前的创新思考能力。对于准备参加谷歌及...

    Google笔试题

    Google笔试题的描述显示,该笔试尽管人数没有限制,但试题本身具有一定难度,特别是对于那些没有做好准备的应聘者。笔试题主要考察应聘者的编程和算法能力,尤其是递归算法的应用。下面将详细介绍笔试中提及的几个...

    JSD面试笔试题汇总 JSD面试笔试题汇总

    JSD面试笔试题汇总JSD面试笔试题汇总JSD面试笔试题汇总JSD面试笔试题汇总JSD面试笔试题汇总JSD面试笔试题汇总JSD面试笔试题汇总JSD面试笔试题汇总JSD面试笔试题汇总JSD面试笔试题汇总JSD面试笔试题汇总JSD面试笔试题...

    一些面试笔试题文档,Google笔试题

    一些面试笔试题文档,包括:Google笔试题,百度试题,北京中软笔试题,广东北电面试题,华为试题,腾讯试题,网易笔试题,迅雷笔试题,中兴面试题。

    百度google笔试题汇总

    这份“百度google笔试题汇总”压缩包文件提供了丰富的资源,帮助那些准备实习或全职工作的应聘者提升自己的技术水平和解决问题的能力。 首先,我们来看看“Google笔试题.doc”和“Google笔试题 (1).doc”。这些文档...

    BAT华为美团360谷歌等各大互联网公司软件校招面试笔试试题资料240MB合集.zip

    BAT华为美团360谷歌等各大互联网公司软件校招面试笔试试题资料240MB合集: 2015年校招腾讯游戏策划笔试题目.docx 2015年百度校招产品经理笔试题目汇总.docx 2015年网易产品策划笔试题.docx 2015年网易用户研究员笔试...

    Google.rar_C++ 笔试题_google_笔试_笔试题

    【标签】"c++_笔试题"强调了这是关于C++编程语言的测试题目,"google 笔试"明确了与Google公司笔试相关的背景,而"笔试题"则再次重申这是用于准备技术面试的资料。这些标签有助于用户快速了解文件内容并找到他们需要...

Global site tag (gtag.js) - Google Analytics