热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

创新工场笔试题帮忙详解

1,有1分,2分,5分,10分四种硬币,每种硬币数量无限,给定n分钱,求有多少种组合可以组合成n分钱?2,马戏团里有个叠罗汉的表演,为了便于美观,下面的人身高和体重都要大于上面的人。现在知道n
1,有1分,2分,5分,10分四种硬币,每种硬币数量无限,给定n分钱,求有多少种组合可以组合成n分钱?

2,马戏团里有个叠罗汉的表演,为了便于美观,下面的人身高和体重都要大于上面的人。现在知道n个演员的身高和体重,请问最多能叠多少层?

19 个解决方案

#1


该回复于2012-10-04 13:25:28被版主删除

#2


靠,蛋疼的算法题目。。。。。

#3


第二题  1+2+3+。。。+x   --表示可以叠x层?  然后等差数列求和?等于n个人? 不知道对不?

#4


第一题这样行不:

写4个循环,层层嵌套。。。。。分别对应4中面值的硬币。。。迭代变量是硬币个数,从一枚开始,迭代条件是硬币总面值小于n。

吧所有可能组合穷举出来。。。。。。。。。。。。。。。。。。。。。。。

#5


第一题么。。。

写个类,代表杂技演员,然后这个类有俩属性,身高和体重,然后实现comparable接口,比较逻辑就是“下面的人身高和体重都要大于上面的人”。

然后把这些对象都放进一个TreeSet,最后TreeSet中元素个数就是最高能叠多少层。。。。

#6


第一个题  for()循环嵌套 
import java.util.Scanner;
public class Coin
{
public static void main(String [] args)
{
int sum=0;
System.out.println("Input a number is  n:"); //输入一个n的值
Scanner input = new Scanner(System.in);
int n=input.nextInt();
for(int i=0;i<=n/10;i++)  // 10 分 的个数
for(int j=0;j<=(n-10*i)/5;j++)  //5分 的个数
for(int m=0;m<=(n-10*i-5*j)/2;m++)  // 2 分的个数
for(int t=0;t<=n-10*i-5*j-2*m;t++)  // 1分的个数
if(10*i+5*j+2*m+t==n)   // 判断是不是 相等
                              sum++;
System.out.println(sum);
}
}

#7



按照这个来就可以  楼主要代码么???
引用 5 楼  的回复:
第一题么。。。

写个类,代表杂技演员,然后这个类有俩属性,身高和体重,然后实现comparable接口,比较逻辑就是“下面的人身高和体重都要大于上面的人”。

然后把这些对象都放进一个TreeSet,最后TreeSet中元素个数就是最高能叠多少层。。。。

#8


引用 7 楼  的回复:
按照这个来就可以 楼主要代码么???

引用 5 楼 的回复:

第一题么。。。

写个类,代表杂技演员,然后这个类有俩属性,身高和体重,然后实现comparable接口,比较逻辑就是“下面的人身高和体重都要大于上面的人”。

然后把这些对象都放进一个TreeSet,最后TreeSet中元素个数就是最高能叠多少层。。。。


贴代码

#9


引用 7 楼  的回复:
按照这个来就可以  楼主要代码么???引用 5 楼  的回复:

第一题么。。。

写个类,代表杂技演员,然后这个类有俩属性,身高和体重,然后实现comparable接口,比较逻辑就是“下面的人身高和体重都要大于上面的人”。

然后把这些对象都放进一个TreeSet,最后TreeSet中元素个数就是最高能叠多少层。。。。

贴代码!!!!!!

#10


代码在这里 
package practice;

import java.util.Comparator;
import java.util.Iterator;
import java.util.Set;
import java.util.TreeSet;

public class Test {
public static void main(String[] args) {
Set set = new TreeSet(new Mycomparator());

Person p1 = new  Person(18.1,57.5);
Person p2 = new Person(17.2,56.4);
Person p3 = new Person(18.3,45.5);
Person p4 = new Person(16.5,80.5);
Person p5 = new Person(19.3,60.5);
Person p6 = new Person(19.2,56.0);
set.add(p1);
set.add(p2);
set.add(p3);
set.add(p4);
set.add(p5);
set.add(p6);
for(Iterator ite =set.iterator();ite.hasNext();){
Person p = (Person)ite.next();
System.out.println(p.getHeight());


}



}

 class Person 
 {
private double height;
private double weight;
public Person(double height,double weight){
this.height=height;
this.weight=weight;
}
public double getHeight() {
return height;
}
public void setHeight(double height) {
this.height = height;
}
public double getWeight() {
return weight;
}
public void setWeight(double weight) {
this.weight = weight;
  }
}
 // 自定义的比较器
 class Mycomparator implements Comparator{


public int compare(Object o1,Object o2) {
Person p1 =(Person)o1;
Person p2 =(Person)o2;
// 比较只能体重和身高都占优势的时候才能加进去
if(p1.getHeight()>p2.getHeight()&&p1.getWeight()>p2.getWeight()){
return 1;
}else if(p1.getHeight() return 1;
}
return 0;
}
 
 }随便找了几个进去测的 有不对之处 请指教。

#11


忘了打印。 在main方法里最后打印下TreeSet数组长度就可以了

#12


第一题可以用枚举的数据

#13


引用 6 楼 zhaoming262350 的回复:
第一个题  for()循环嵌套 
import java.util.Scanner;
public class Coin
{
public static void main(String [] args)
{
int sum=0;
System.out.println("Input a number is  n:"); //输入一个n的值
Scanner input = new ……


哥们,你很厉害哈。学习啦。代码已测正确。

#14


引用 10 楼  的回复:
代码在这里 
package practice;

import java.util.Comparator;
import java.util.Iterator;
import java.util.Set;
import java.util.TreeSet;

public class Test {
public static void main(String[] args) {……

这样举一个例子
     身高    体重
A:  200     200
B:  100     150
C:  150     100
D:  110     50      
E:  80      30  
如果按照ACDE的顺序可以添加4层,如果按照ABE的顺序只能添加三层。
而你的遍历的顺序是先后,也就说第一个添加之后,第二个数据应该是先添加B,也就是错误的数据。
我觉得出题的人应该就是想考是不是考虑到这一层,第一层的出题点我还没想出来,我感觉应该不是简单的FOR循环那么简单,暂时猜测是不是考的是算法的运算时间。

#15


该回复于2012-10-05 19:42:36被版主删除

#16


恩,代码有点问题,这个得再考虑考虑
引用 14 楼  的回复:
引用 10 楼  的回复:
代码在这里
package practice;

import java.util.Comparator;
import java.util.Iterator;
import java.util.Set;
import java.util.TreeSet;

public class Test {
public static void main(S……

#17


import java.util.Scanner;

//有1分,2分,5分,10分四种硬币,每种硬币数量无限,给定n分钱,求有多少种组合可以组合成n分钱?
public class Test {
public static void main(String[] args) {
int x1,x2,x5,x10;//分别定义1,2,5,10分钱的数量
int sum=0;
Scanner input = new Scanner(System.in);
int n=input.nextInt();//接收输入的n
for(x10=0;x10<=n/10;x10++){
for(x5=0;x5<=(n-x10*10)/5;x5++){
for(x2=0;x2<=(n-x10*10-x5*5)/2;x2++){
for(x1=0;x1<=(n-x10*10-x5*5-x2*2);x1++){
if((x1+2*x2+5*x5+10*x10)==n){
sum++;
}
}
}
}
}
System.out.println("组合共有"+sum+"种");
}
}
第一题把6楼的代码改进了一下,不知道还有没有更高效的,可以分享下。
第二题有空再写了,有点晚了,先睡了

#18


不好意思,看错了6楼的代码,我上面和6楼的一样,心想的那个方法是代码复用的,今晚上还未实现。
抱歉了

#19


引用 14 楼  的回复:
引用 10 楼 的回复:
代码在这里
package practice;

import java.util.Comparator;
import java.util.Iterator;
import java.util.Set;
import java.util.TreeSet;

public class Test {
public static void main(Str……


这个问题哪个大神来解决啊
学习一下。。

#20


  • 创新工场两道笔试题0919
  • 2014创新工场校招笔试题及参考答案

推荐阅读
  • [大整数乘法] java代码实现
    本文介绍了使用java代码实现大整数乘法的过程,同时也涉及到大整数加法和大整数减法的计算方法。通过分治算法来提高计算效率,并对算法的时间复杂度进行了研究。详细代码实现请参考文章链接。 ... [详细]
  • Iamtryingtomakeaclassthatwillreadatextfileofnamesintoanarray,thenreturnthatarra ... [详细]
  • 本文介绍了如何在给定的有序字符序列中插入新字符,并保持序列的有序性。通过示例代码演示了插入过程,以及插入后的字符序列。 ... [详细]
  • Java太阳系小游戏分析和源码详解
    本文介绍了一个基于Java的太阳系小游戏的分析和源码详解。通过对面向对象的知识的学习和实践,作者实现了太阳系各行星绕太阳转的效果。文章详细介绍了游戏的设计思路和源码结构,包括工具类、常量、图片加载、面板等。通过这个小游戏的制作,读者可以巩固和应用所学的知识,如类的继承、方法的重载与重写、多态和封装等。 ... [详细]
  • Java容器中的compareto方法排序原理解析
    本文从源码解析Java容器中的compareto方法的排序原理,讲解了在使用数组存储数据时的限制以及存储效率的问题。同时提到了Redis的五大数据结构和list、set等知识点,回忆了作者大学时代的Java学习经历。文章以作者做的思维导图作为目录,展示了整个讲解过程。 ... [详细]
  • 本文讨论了一个关于cuowu类的问题,作者在使用cuowu类时遇到了错误提示和使用AdjustmentListener的问题。文章提供了16个解决方案,并给出了两个可能导致错误的原因。 ... [详细]
  • 个人学习使用:谨慎参考1Client类importcom.thoughtworks.gauge.Step;importcom.thoughtworks.gauge.T ... [详细]
  • 本文详细介绍了Java中vector的使用方法和相关知识,包括vector类的功能、构造方法和使用注意事项。通过使用vector类,可以方便地实现动态数组的功能,并且可以随意插入不同类型的对象,进行查找、插入和删除操作。这篇文章对于需要频繁进行查找、插入和删除操作的情况下,使用vector类是一个很好的选择。 ... [详细]
  • 猜字母游戏
    猜字母游戏猜字母游戏——设计数据结构猜字母游戏——设计程序结构猜字母游戏——实现字母生成方法猜字母游戏——实现字母检测方法猜字母游戏——实现主方法1猜字母游戏——设计数据结构1.1 ... [详细]
  • Android源码深入理解JNI技术的概述和应用
    本文介绍了Android源码中的JNI技术,包括概述和应用。JNI是Java Native Interface的缩写,是一种技术,可以实现Java程序调用Native语言写的函数,以及Native程序调用Java层的函数。在Android平台上,JNI充当了连接Java世界和Native世界的桥梁。本文通过分析Android源码中的相关文件和位置,深入探讨了JNI技术在Android开发中的重要性和应用场景。 ... [详细]
  • Java学习笔记之面向对象编程(OOP)
    本文介绍了Java学习笔记中的面向对象编程(OOP)内容,包括OOP的三大特性(封装、继承、多态)和五大原则(单一职责原则、开放封闭原则、里式替换原则、依赖倒置原则)。通过学习OOP,可以提高代码复用性、拓展性和安全性。 ... [详细]
  • 本文介绍了iOS数据库Sqlite的SQL语句分类和常见约束关键字。SQL语句分为DDL、DML和DQL三种类型,其中DDL语句用于定义、删除和修改数据表,关键字包括create、drop和alter。常见约束关键字包括if not exists、if exists、primary key、autoincrement、not null和default。此外,还介绍了常见的数据库数据类型,包括integer、text和real。 ... [详细]
  • 本文介绍了使用Java实现大数乘法的分治算法,包括输入数据的处理、普通大数乘法的结果和Karatsuba大数乘法的结果。通过改变long类型可以适应不同范围的大数乘法计算。 ... [详细]
  • JavaSE笔试题-接口、抽象类、多态等问题解答
    本文解答了JavaSE笔试题中关于接口、抽象类、多态等问题。包括Math类的取整数方法、接口是否可继承、抽象类是否可实现接口、抽象类是否可继承具体类、抽象类中是否可以有静态main方法等问题。同时介绍了面向对象的特征,以及Java中实现多态的机制。 ... [详细]
  • 不同优化算法的比较分析及实验验证
    本文介绍了神经网络优化中常用的优化方法,包括学习率调整和梯度估计修正,并通过实验验证了不同优化算法的效果。实验结果表明,Adam算法在综合考虑学习率调整和梯度估计修正方面表现较好。该研究对于优化神经网络的训练过程具有指导意义。 ... [详细]
author-avatar
呵呵傻乎乎宝宝
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有