java笔试题:骆驼运水和汽车运油题。(自己的见解,希望大家好、指正)

一位商人用毛驴运胡萝卜3000根过沙漠去卖,沙漠长1000公里,毛驴一次最多驼1000根,但每走一公里要吃一根胡萝卜,问这位商人最多能卖多少根胡萝卜。

解:设运x米处回去再运,则运到x处3次后,x处有萝卜3(1000-2x);

其中x必须小于500。

剩下的路程:1000-x,假设中间不停留一趟运走:则3(1000-2x)>=1000,得x<=1000/3;得到达目的地最多剩下1000/3;

假设二趟:1000-x大于500,不可能来回2趟。(舍)

如果剩下的分2趟,则由上知道必须在设y处停,则可以看出x到y最少2趟,y到目的1趟,则3(1000-2x)>=2000则x=1000/6,又2(1000-2y)=1000,y=1000/2所以到达目的地剩下为:1000-x-y=1000-1000/6-1000/2=1000/3;

如果分4次,最后一次必须一趟,则倒数第二次为二趟,类推第一次为4趟,不可能,所以最多3次走完。

所以答案为1000/3.

改变题目

路程为1000,出发地胡萝卜为无数,问到达目的地有1000个,至少消耗多少胡萝卜?

假设3次(平均路程):

最后一次:(1000-2/3*1000)/(1000/3)+1趟数=2

倒数二次:(2000-2/3*1000)/(1000/3)+1=5

倒数三次 :13

所以13000根。

假设n次

最后an=(1/n)/(1-2/n)+1=1/(n-2)+1所以n只能是3

下面再讨论非平均路程情况(时间关系,下次!)

时间: 2024-10-13 00:55:00

java笔试题:骆驼运水和汽车运油题。(自己的见解,希望大家好、指正)的相关文章

Java笔试题1

1. 下面的代码运行后,将输出什么结果? String s1 = new String("Test"); String s2 = new String("Test"); if (s1 == s2) System.out.println("Same"); if (s1.equals(s2)) System.out.println("Equals"); A. Same     Equals  B.Same   C. Equals

java笔试题(1)

char型变量中能不能存贮一个中文汉字? char型变量是用来存储Unicode编码的字符的,unicode编码字符集中包含了汉字,所以,char型变量中当然可以存储汉字啦.不过,如果某个特殊的汉字没有被包含在unicode编码字符集中,那么,这个char型变量中就不能存储这个特殊汉字.补充说明:unicode编码占用两个字节,所以,char类型的变量也是占用两个字节. "=="和equals方法有什么区别? (1)对于字符串变量来说,使用“==”和“equals()”方法比较字符串时

精选30道Java笔试题解答

个人觉得整理的超级好的Java笔试题,原文请见 http://blog.csdn.net/lanxuezaipiao/article/details/16753743 1. 下面哪些是Thread类的方法() A start()       B run()       C exit()       D getPriority() 答案:ABD 解析:看Java API docs吧:http://docs.oracle.com/javase/7/docs/api/,exit()是System类的方

java笔试题(3)

short a = 1; a = a + 1; 有错吗? short a = 1; a += 1; 有错吗? 对于short a = 1; a = a + 1;由于a + 1 运算时会自动提升表达式的类型,所以结果是int型,再复制short类型a时,编译器将报告需要强制装换类型的错误. 对于short a = 1; a += 1;由于 += 是java语言规定的运算符,java编译器会对它进行特殊处理,因此可以正确编译. 静态变量和实例变量的区别? 在语法定义上的区别:静态变量前要加stati

java笔试题解析

1.数组乱序 天天搞排序,今天遇到一道乱序的问题居然无从下手,知道random,然后想了很复杂的if条件判断. 其实,只要在数组里面依次拿出一个数,然后产生数组长度范围内的一个数作为下标,然后互换即可! public class RandomNumber { public static void main(String[] args) { int change = 6; int[] sequence = new int[change]; for (int i = 0; i < change; i

java笔试题(4)

abstract的method是否可同时是static,是否可同时是native,是否可同时是synchronized? abstract的method 不可以是static的,因为抽象的方法是要被子类实现的,而static与子类扯不上关系! abstract的method 不可以是native的,native方法表示该方法要用另外一种依赖平台的编程语言实现的,不存在着被子类实现的问题,所以,它也不能是抽象的,不能与abstract混用.例如,FileOutputSteam类要硬件打交道,底层的

java笔试题(2)

简述构造器的运行机制 首先要注意的是的构造器并不是函数,所以他并不能被继承,这在我们extends的时候写子类的构造器时比较的常见,即使子类构造器参数和父类的完全一样,我们也要写super就是因为这个原因. 构造器的修饰符比较的有限,仅仅只有public private protected这三个,其他的例如任何修饰符都不能对其使用,也就是说构造器不允许被成名成抽象.同步.静态等等访问限制以外的形式. 因为构造器不是函数,所以它是没有返回值的,也不允许有返回值.但是这里要说明一下,构造器中允许存在

【笔试题】Java笔试题知识点

Java高概率笔试题知识点 Java语法基础部分 [解析]java命令程序执行字节码文件是,不能跟文件的后缀名! 1.包的名字都应该是由小写单词组成,它们全都是小写字母,即便中间的单词亦是如此 2.类名的第一个字母一定要大写 3.变量名第一个字母应该为小写 4.与属性对应的get, set方法为: set(get)+属性名, 属性名第一个字母为大写. 存储一个24*24点阵的汉字(每个点1bit)需要多少字节? (72) [解析]24*24/8=72.意思是:24*24的结果是二进制位,而八个二

java笔试题(1)

转载自:http://blog.csdn.net/fmh2011/article/details/19690999 某互联网公司的java基础笔试题 该公司的不少题来自于java面试宝典 1.char型变量中能不能存贮一个中文汉字?为什么? char型变量是用来存储Unicode编码的字符的,unicode编码字符集中包含了汉字,所以,char型变量中当然可以存储汉字啦.不过,如果某个特殊的汉字没有被包含在unicode编码字符集中,那么,这个char型变量中就不能存储这个特殊汉字.补充说明:u