java算法试题

java算法试题

ID:40558183

大小:86.62 KB

页数:9页

时间:2019-08-04

java算法试题_第1页
java算法试题_第2页
java算法试题_第3页
java算法试题_第4页
java算法试题_第5页
资源描述:

《java算法试题》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、【01、猜年龄(3分)】美国数学家维纳(N.Wiener)智力早熟,11岁就上了大学。他曾在1935~1936年应邀来中国清华大学讲学。一次,他参加某个重要会议,年轻的脸孔引人注目。于是有人询问他的年龄,他回答说:“我年龄的立方是个4位数。我年龄的4次方是个6位数。这10个数字正好包含了从0到9这10个数字,每个都恰好出现1次。”请你推算一下,他当时到底有多年轻。【02、组素数(5分)】素数就是不能再进行等分的数。比如:235711等。9=3*3说明它可以3等分,因而不是素数。我们国家在1949

2、年建国。如果只给你1949这4个数字卡片,可以随意摆放它们的先后顺序(但卡片不能倒着摆放啊,我们不是在脑筋急转弯!),那么,你能组成多少个4位的素数呢?比如:1949,4919都符合要求。请你提交:能组成的4位素数的个数,不要罗列这些素数!!【03、马虎的算式(8分)】小明是个急性子,上小学的时候经常把老师写在黑板上的题目抄错了。有一次,老师出的题目是:36x495=?他却给抄成了:396x45=?但结果却很戏剧性,他的答案竟然是对的!!因为36*495=396*45=17820类似这样的巧合情

3、况可能还有很多,比如:27*594=297*54假设abcde代表1~9不同的5个数字(注意是各不相同的数字,且不含0)能满足形如:ab*cde=adb*ce这样的算式一共有多少种呢?请你利用计算机的优势寻找所有的可能,并回答不同算式的种类数。满足乘法交换律的算式计为不同的种类,所以答案肯定是个偶数。【04、第39级台阶(12分)】小明刚刚看完电影《第39级台阶》,离开电影院的时候,他数了数礼堂前的台阶数,恰好是39级!站在台阶前,他突然又想着一个问题:如果我每一步只能迈上1个或2个台阶。先迈左

4、脚,然后左右交替,最后一步是迈右脚,也就是说一共要走偶数步。那么,上完39级台阶,有多少种不同的上法呢?请你利用计算机的优势,帮助小明寻找答案。要求提交的是一个整数。【05、有理数类(6分)】有理数就是可以表示为两个整数的比值的数字。一般情况下,我们用近似的小数表示。但有些时候,不允许出现误差,必须用两个整数来表示一个有理数。这时,我们可以建立一个“有理数类”,下面的代码初步实现了这个目标。为了简明,它只提供了加法和乘法运算。classRational{privatelongra;private

5、longrb;privatelonggcd(longa,longb){if(b==0)returna;returngcd(b,a%b);}publicRational(longa,longb){ra=a;rb=b;longk=gcd(ra,rb);if(k>1){ra/=k;rb/=k;}}publicRationaladd(Rationalx){return__________________;}publicRationalmul(Rationalx){returnnewRational(ra

6、*x.ra,rb*x.rb);}publicStringtoString(){if(rb==1)return""+ra;returnra+"/"+rb;}}使用该类的示例:Rationala=newRational(1,3);Rationalb=newRational(1,6);Rationalc=a.add(b);System.out.println(a+"+"+b+"="+c);请分析代码逻辑,并推测划线处的代码,通过网页提交。【06、逆波兰表达式(11分)】正常的表达式称为中缀表达式,运算

7、符在中间,主要是给人阅读的,机器求解并不方便。例如:3+5*(2+6)-1。而且,常常需要用括号来改变运算次序。相反,如果使用逆波兰表达式(前缀表达式)表示,上面的算式则表示为:-+3*5+261。不再需要括号,机器可以用递归的方法很方便地求解。为了简便,我们假设:1.只有+-*三种运算符;2.每个运算数都是一个小于10的非负整数下面的程序对一个逆波兰表示串进行求值。其返回值为一个数组:其中第一元素表示求值结果,第二个元素表示它已解析的字符数。以下的程序实现了该目标。staticint[]eva

8、luate(Stringx){if(x.length()==0)returnnewint[]{0,0};charc=x.charAt(0);if(c>='0'&&c<='9')returnnewint[]{c-'0',1};int[]v1=evaluate(x.substring(1));int[]v2=______________________;intv=Integer.MAX_VALUE;if(c=='+')v=v1[0]+v2[0];if(c=='*')v=v1[0]*v2[0];if(

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。