常见Java上机面考试_第1页
常见Java上机面考试_第2页
常见Java上机面考试_第3页
常见Java上机面考试_第4页
常见Java上机面考试_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

/19publicstatic boolean Testify_Guess(//判断符合则返回在1〜100////intlow,inthigh){1〜100范围内的所有偶数是否符合哥德巴赫猜想,true,反之则返回falseinti,j= 0;booleanflag=true;for(i=low;i<=if(i%之间选取大于2high;i++)2== 0&&i>的偶数进行猜想测试if(isGoldbach(i)){2)//j++;用来控制输出格式,每行输出5个数据

if(j==System.out.println();j=}5){0;//flag=returnflag;else{breakfalsebooleanpublicstatic判断参数a是否符合哥德巴赫猜想inti;booleanisGoldbach(inta){II//for(i=ifflag=false;1;i<=a/ 2;i++){(isPrime(i)&&isPrime(a-i)){根据试题分析中的表达式,传入相关的两个参数flag= true;System.out.print(a++i+ "+"+(a-i)II);break;只要有一个符合条件的就可以退岀循环,判断下一个偶数}}returnflag;publicstatic boolean isPrime(inti){0.//判断参数i是否是素数,是则返回true 反之则返回n;52.booleanflag= true;53.if(1==i)//1本身不是素数,因此需把这个特殊的数字抛出54.flag= false;55.for(n= 2;n<=i-1;n++)/*判断i是否是素数的一个方法是看 2--i-1之间有其因子(能被22整除),有则不是素数返回 false!,反之则返回true*/56.if(i%n== 0){57.flag= false;58.break;59.}60.returnflag;61.}62.}程序的输岀结果如图 17.4所示。JwftdlocDAcluration0C4ni<nl«■X%|BiD|cfB*rt*"【J•簟.cun.]* u«(2005-1-20下午OC在17叽范阖內,现在开姑证实哥籌巴翔fi越A,2+2 6-3+3 8-3+5 10-3+113-5+7H"3+lll€-3+1318-5+1320-S+1703+1924-S+1926-3+2328-5+2330-7+2332*3+2934-3+313€-S+3138-7+3140-3+3742-S+3744-3+4146-3+4348-5+4350-3+4752-5+4754-7+47S3+5350=5+53SO-7+5362«3+5964*3+6166"S+6168"7+613+6772-5+6774-3+7176-34-737S-S+7380-7+7362-3+7984-S+7986-3+€3ea-s+8390"7+8392-343996-7+B998-19+79沖在-g口范阖内.哥寡巴iWI朋1正林*! V<仃.1Java基础编程试题(5)面试题6怎样实现金额转换考题题干金额转换,阿拉伯数字的金额转换成中国传统的形式如:(¥1011)t(壹仟零壹拾壹元整)输岀。试题分析金额转换,在开发财务相关软件时会经常用到,也是软件本地化的一个需要。 一般开发公司或者团队都有相应的金额转换类或者是模块,配合报表工具,可以实现良好的本地化。这里给出一个简单的金额转换代码,供读者参考。参考答案

具体代码实现如下:1.packageprograme;.4.5.importjava.util.HashMap;import java.util.Scanner;publicclass AmountOfConversion{6.//定义HashMap的value值7.publicstaticfinalStringEMPTY=Illi.8.publicstaticfinalStringZERO="零“;9.publicstaticfinalStringONE=壹 ;10.publicstaticfinalStringTWO=II II.贝J;11.publicstaticfinalStringTHREE="叁";12.publicstaticfinalStringFOUR="肆";13.publicstaticfinalStringFIVE="伍";14.publicstaticfinalStringSIX="陆“;15.publicstaticfinalStringSEVEN="^柒";16.publicstaticfinalStringEIGHT="捌“;17.publicstaticfinalStringNINE="玖“;18.publicstaticfinalStringTEN="拾“;19.publicstaticfinalStringHUNDRED=: "佰“;20.publicstaticfinalStringTHOUSAND= "仟“;21.publicstaticfinalStringTEN_THOUSAND= "万";22.publicstaticfinalStringHUNDRED_MILLION= "彳乙"23.publicstaticfinalStringYUAN="元";24.publicstaticfinalStringJIAO="角";25.publicstaticfinalStringFEN="分“;26.publicstaticfinalStringDOT=IIII .■}27.privatestaticAmountOfConversionformatter= null//创建AmountOfConversion 的实例对象//创建初始化一个 HashMap对象private HashMapNumberMap=newHashMap();private HashMapHighnumberofMoney= newHashMap();//创建初始化一个 NumberFormat对象private NumberFormatnumberFormat=NumberFormat.getInstance();private AmountOfConversion(){//在用new创建AmountOfConversion 对象时,为HashMap对象进行key-value 的映射TOC\o"1-5"\h\znumberFormat.setMaximumFractionDigits( 4);//设置数据的小数部分的最大位数是 4位numberFormat.setMinimumFractionDigits( 2);//设置数据的小数部分的最小位数是 2位

numberFormat.setGroupingUsed( false);/*设置此格式中是不可以使用组。如果设置可以使用组,则数1234567 可能被格式化为"1,234,567"*/38.NumberMap.put("0",ZERO);39.NumberMap.put("1",ONE);40.NumberMap.put("2",TWO);41.NumberMap.put("3",THREE);42.NumberMap.put("4",FOUR);43.NumberMap.put("5",FIVE);44.NumberMap.put("6",SIX);45.NumberMap.put("7",SEVEN);46.NumberMap.put("8",EIGHT);47.NumberMap.put("9",NINE);48.NumberMap.put(DOT,DOT);49.HighnumberofMoney.put("1",TEN);50.HighnumberofMoney.put("2",HUNDRED);51.HighnumberofMoney.put("3",THOUSAND);52.HighnumberofMoney.put("4",TEN_THOUSAND);53.HighnumberofMoney.put("5",TEN);54.HighnumberofMoney.put("6",HUNDRED);55.HighnumberofMoney.put("7",THOUSAND);56.HighnumberofMoney.put("8",HUNDRED_MILLION)57.}58.public static AmountOfConversiongetInstance(){//判断AmountOfConversion对象formatter 是否初始化59.if(formatter==null )60.formatter=newAmountOfConversion();61.returnformatter;62.}63.//进行金额转换的多种数据类型64.public Stringformat(StringmoneyStr){65.Stringresult="不能进行金额转换!! ";66.if(isConversion(moneyStr)){67.result=convertIntegerTochinese(moneyStr);68.result=convertPointTochinese(result);69.}70.returnresult;71.}72.public Stringformat(doublemoneyDouble){73.return format(numberFormat.format(moneyDouble));74.}75.public Stringformat(intmoneylnt){76.return format(numberFormat.format(moneylnt));

4.publicStringformat( longmoneyLong){return format(numberFormat.format(moneyLong));}publicStringformat(NumbermoneyNum){return format(numberFormat.format(moneyNum));}private StringconvertIntegerTochinese(StringmoneyStr){//将参数中传入的阿拉伯数字转换成中文85.Stringresult;86.StringBufferC2CStrBufer=newStringBuffer();87.for(inti= 0;i<moneyStr.length();i++){88.C2CStrBufer.append(NumberMap.get(moneyStr.substring(89.i,i+ 1)));90.}91.//拾佰仟万亿等都是汉字里面才有的单位,加上它们92.intindexOfDot=C2CStrBufer.indexOf(DOT);93.intmoneyPatternCursor= 1;94.for(inti=indexOfDot- '1;i>0;i--){95.C2CStrBufer.insert(i.HighnumberofMoney.get(EMPTY96.+moneyPatternCursor));97.moneyPatternCursor=moneyPatternCursor==8?198.:moneyPatternCursor+1;99.}100.prStringfractionPart=C2CStrBufer.substring(C2CStrBuf101..indexOf( "."));102.C2CStrBufer.delete(C2CStrBufer.indexOf(IIII),103.C2CStrBufer.length());104.while(C2CStrBufer.indexOf("零拾“)!=-1){105.C2CStrBufer.replace(C2CStrBufer.indexOf("零拾"),106.C2CStrBufer.indexOf(II零拾")+2,ZERO);107.}108.while(C2CStrBufer.indexOf("零佰")!=-1){109.C2CStrBufer.replace(C2CStrBufer.indexOf("零佰"),110.C2CStrBufer.indexOf(II零佰")+2,ZERO);111.}112.while(C2CStrBufer.indexOf("零仟")!=-1){113.C2CStrBufer.replace(C2CStrBufer.indexOf("零仟"),114.C2CStrBufer.indexOf(II零仟")+2,ZERO);

115. }116.while(C2CStrBufer.indexOf("零万")!=-1){117.C2CStrBufer.replace(C2CStrBufer.indexOf("零万“),118.C2CStrBufer.indexOf("零万")+2,TEN_THOUSAND);119.}120.while(C2CStrBufer.indexOf("零亿“)匸-1){121.C2CStrBufer.replace(C2CStrBufer.indexOf("零亿“),122.C2CStrBufer.indexOf("零亿")+2,HUNDRED_MILLION);123.}124.while(C2CStrBufer.indexOf("零零“)匸-1){125.C2CStrBufer.replace(C2CStrBufer.indexOf("零零“),126.C2CStrBufer.indexOf("零零“)+2,ZERO);127.}128.if(C2CStrBufer.lastIndexOf(ZERO)==C2CStrBufer.length()- 1)C2CStrBufer.delete(C2CStrBufer.length()- 1,C2CStrBufer.length());C2CStrBufer.append(fractionPart);result=C2CStrBufer.toString();returnresult;}private StringconvertPointTochinese(StringmoneyStr){//对小数点后面的数字进行汉字处理Stringresult;newStringBuffer(moneyStr)StringBufferC2CStrBufer=newStringBuffer(moneyStr)intindexOfDot=C2CStrBufer.indexOf(DOT);1,YUAN)C2CStrBufer.replace(indexOfDot,indexOfDot+1,YUAN)C2CStrBufer.insert(C2CStrBufer.length()- 1,JIAO);C2CStrBufer.insert(C2CStrBufer.length(),FEN);if(C2CStrBufer.indexOf( "零角零分“)!=- 1)//没有零头,加整C2CStrBufer.replace(C2CStrBufer.indexOf( "零角零分"),C2CStrBufer.length(), "整”);elseif(C2CStrBufer.indexOf( "零分“)匸- 1)// 没有零分,"零分“),"整");加整"零分“),"整");C2CStrBufer.replace(C2CStrBufer.indexOf(C2CStrBufer.length(),else{

149.150.零角TOC\o"1-5"\h\zif(C2CStrBufer.indexOf( "零角“)!=- 1)149.150.零角C2CStrBufer.delete(C2CStrBufer.indexOf("),C2CStrBufer.indexOf( "零角“)+ 2);}result=C2CStrBufer.toString();return result;}privateboolean isConversion(StringmoneyStr){//判断参数传来的数据是否符合进行转换的条件moneyStr.indexOf(DOT)-1;158.moneyStr.indexOf(DOT)-1;158.booleanflag=true;159.if(fractionDigits>2){160.System.out.println("金额"+moneyStr的小数位多于两位。”);//精度不能比分低161.flag= falseI162.}163.returnflag;164.165.}166.public static voidmain(Stringargs[]){167.System.out.println("请输入金额数:”);168.Scannerscanner=newScanner(System.in);169.Stringstr=scanner.next();170.System.out.println("转换后的金额为:");171.System.out.println(getInstance().format(r)));172.}173.}17.1Java基础编程试题(6)157. intfractionDigits=moneyStr.length()-IInewDouble(st程序的输岀结果如图 17.5所示。■…J...&... 0C..oun(0fCqrr11 [Jwa*■m%:niciis*n*转换后的金领%*壹万贰仟奎佰零贰兄1K榕鑿分技jfC展筑审翘亠图17.5程序输岀结果

面试题7爱因斯坦的阶梯问题考题题干爱因斯坦曾出过这样一道有趣的数学题:有一个长阶梯,每步上 2阶,最后剩1阶;若每步上3阶,最后剩2阶;若每步上5阶,最后剩4阶;若每步上6阶,最后剩5阶;只有每步上7阶,最后一阶也不剩。请问该阶梯至少有多少阶。编写一个 Java程序解决该问题。试题分析从上面的描述中,可以把这个问题用数学方程式的形式表达岀来,代码如下:x%2=1x%3=2x%5=4x%6=5x%7=0从上面的表达式中不难看岀,此方程 x的解应该有无穷个,但这里要求的是那个最小的解。这个解一定是7的倍数,因为x%7=0,因此就用7的倍数依次与2、3、5、6进行取模运算,如果都符合了上面表达式的条件,那么这个数就是本题的答案,沿着这条思路,本题的具体代码如下。参考答案具体代码实现如下:packagecore_java;2.3.public classStairsFlight{4.5.publicstatic voidmain(String[]args){6.intx= 7,i,res=0;7.booleanflag=false;8.for(i= 1;i<=50;i++){ //将循环次数定为50,表示寻找范围为: 7〜350之间9.if((x% 2==1)&&(x% 3== 2)&&(x% 5==4)&&(x%6== 5)){10.res=:K;11.flag=true;12.break;13.}14.x=7*(i+1);15.}16.if(true==flag)17.System.out.println("关于爱因斯坦的阶梯问题的答案是: "+res);else

System.out.println(TOC\o"1-5"\h\zHYPE

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论