由于本人函授本科,期末JAVA两题编程不会写,楼主只会C。望高手们帮忙一下,明早一大早就要考试了,坐等

问题描述

某商场10年店庆活动,规定消费金额500元以上的部分可以给予95折,消费1000元以上的部分可以给予9折,消费2000元以上的部分可以给予85折。现要求设计一个程序,要求根据用户从键盘输入的商品总价计算出折后价。要求输出格式为:=======================原价:600.00元折后价:595.00元=======================设有一个四位数,它的四位数字分别是ABCD,而其又满足一下条件:ABCD*9=DCBA,试编写一段小程序计算这个四位数究竟是多少。

解决方案

解决方案二:
一般我只写思路..如果你很急就私信我
解决方案三:
publicclassABCDtimes9equalsDCBA{publicstaticvoidmain(finalStringargv[]){intdcba=0;for(intabcd=1000;abcd<=9999;abcd++){

dcba=(abcd%10*1000)+(abcd/10%10*100)+(abcd/100%10*10)+abcd/1000;if(abcd*9==dcba){System.out.println(abcd+"*9="+dcba);}}}}

1089*9=9801

框架如上,最有用的那行代码按下Ctrl+A可以看到,最好自己考虑一下再看答案参考:http://zhidao.baidu.com/link?url=_ubJJ2RDt72JZqe5-hHKrsKcpbbNCvaphf4Z7i04-YBMf7c-_BiLG-yeXl6cJzpLNYzC7S1jYptso7PYTBKnp_
解决方案四:
楼上已给第二题答案,估计楼主已经在考试了,老衲就不出手了
解决方案五:
importjava.text.*;importjava.util.*;publicclassDiscountCalculator{publicstaticvoidmain(finalString[]args){do{try{StringinputString="";//商品总价输入用bufferSystem.out.print("请输入商品总价(直接回车则退出程序):");inputString=(newScanner(System.in)).nextLine();if(inputString==null||inputString.length()==0){break;//直接回车则退出程序}DoublefullPrice=0.0;//原价DoublediscountPrice=0.0;//折后价fullPrice=Double.valueOf(inputString);if(fullPrice<-Double.MAX_VALUE||Double.MAX_VALUE<fullPrice){thrownewNumberFormatException();}discountPrice=calculateDiscountPrice(fullPrice);printPrice(fullPrice,discountPrice);}catch(NumberFormatExceptione){System.out.println("您输入的商品总价的格式不正确,请重新输入!");}}while(true);System.out.println("程序结束,欢迎再次使用!");}/***根据商品总价计算出折后价**@paramfullPrice商品总价(原价)*@returndiscountPrice折后价*/privatestaticDoublecalculateDiscountPrice(DoublefullPrice){DoublediscountPrice=0.0;if(fullPrice>2000.0){//消费2000元以上的部分可以给予85折discountPrice=500.0+500.0*0.95+1000.0*0.90+(fullPrice-2000.0)*0.85;}elseif(fullPrice>1000.0){//消费1000元以上的部分可以给予9折discountPrice=500.0+500.0*0.95+(fullPrice-1000.0)*0.90;}elseif(fullPrice>500.0){//消费金额500元以上的部分可以给予95折discountPrice=500.0+(fullPrice-500.0)*0.95;}else{discountPrice=fullPrice;}returndiscountPrice;}/***@paramfullPrice商品总价(原价)*@paramdiscountPrice折后价*/privatestaticvoidprintPrice(DoublefullPrice,DoublediscountPrice){DecimalFormatdf=newDecimalFormat("#0.00");//输出格式System.out.println("=======================");System.out.println("原价:"+df.format(fullPrice)+"元");System.out.println("折后价:"+df.format(discountPrice)+"元");System.out.println("=======================");}}

请输入商品总价(直接回车则退出程序):a您输入的商品总价的格式不正确,请重新输入!请输入商品总价(直接回车则退出程序):-1=======================原价:-1.00元折后价:-1.00元=======================请输入商品总价(直接回车则退出程序):0=======================原价:0.00元折后价:0.00元=======================请输入商品总价(直接回车则退出程序):1=======================原价:1.00元折后价:1.00元=======================请输入商品总价(直接回车则退出程序):499=======================原价:499.00元折后价:499.00元=======================请输入商品总价(直接回车则退出程序):499.5=======================原价:499.50元折后价:499.50元=======================请输入商品总价(直接回车则退出程序):500=======================原价:500.00元折后价:500.00元=======================请输入商品总价(直接回车则退出程序):500.5=======================原价:500.50元折后价:500.48元=======================请输入商品总价(直接回车则退出程序):501=======================原价:501.00元折后价:500.95元=======================请输入商品总价(直接回车则退出程序):999=======================原价:999.00元折后价:974.05元=======================请输入商品总价(直接回车则退出程序):1000=======================原价:1000.00元折后价:975.00元=======================请输入商品总价(直接回车则退出程序):1001=======================原价:1001.00元折后价:975.90元=======================请输入商品总价(直接回车则退出程序):1999=======================原价:1999.00元折后价:1874.10元=======================请输入商品总价(直接回车则退出程序):2000=======================原价:2000.00元折后价:1875.00元=======================请输入商品总价(直接回车则退出程序):2001=======================原价:2001.00元折后价:1875.85元=======================请输入商品总价(直接回车则退出程序):1.7976931348623157E308=======================原价:179769313486231570000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000.00元折后价:152803916463296830000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000.00元=======================请输入商品总价(直接回车则退出程序):1.7976931348623158E308=======================原价:179769313486231570000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000.00元折后价:152803916463296830000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000.00元=======================请输入商品总价(直接回车则退出程序):1.7976931348623159E308您输入的商品总价的格式不正确,请重新输入!请输入商品总价(直接回车则退出程序):程序结束,欢迎再次使用!

解决方案六:
引用3楼u014496722的回复:

楼上已给第二题答案,估计楼主已经在考试了,老衲就不出手了

请帮忙检查一下#4楼的程序和测试用例吧给人家回答错了可不太好
解决方案七:
期末JAVA两题编程不会写,楼主只会C。学校没有开Java的课程吗?如果没有开,为什么要你们用Java些程序?如果开了,这么简单的都些不出来,对的起你父母吗?大家不能为了点分没底线,这个是期末作业。
解决方案八:
楼主推荐几本c书看看。
解决方案九:
我就奇怪楼上的这么热心干什么居然楼主自己选择要学习java的平时不好好学,这么简单的题目居然还要来请教说据不好听的简直就是一祸害
解决方案十:
说的对....感觉下次类似的写思路就好了
解决方案十一:
注册个账户得到答案也不结贴吗?
解决方案十二:
会c的人用java来做这个,只需要花一个小时学习java就足够了,因为while、if、for等基本的语法c和java都是一样的,唯一不同的是java面向对象,需要定义一个类,而c不用。就这点区别一个小时足够学习了。
解决方案十三:
引用11楼rumlee的回复:

会c的人用java来做这个,只需要花一个小时学习java就足够了,因为while、if、for等基本的语法c和java都是一样的,唯一不同的是java面向对象,需要定义一个类,而c不用。就这点区别一个小时足够学习了。

你只需要看一个java的helloworld程序,然后结合你学习的c知识就可以做了。
解决方案十四:
dcba=(abcd%10*1000)+(abcd/10%10*100)+(abcd/100%10*10)+abcd/1000;引用2楼Android_iPhone的回复:

publicclassABCDtimes9equalsDCBA{publicstaticvoidmain(finalStringargv[]){intdcba=0;for(intabcd=1000;abcd<=9999;abcd++){

dcba=(abcd%10*1000)+(abcd/10%10*100)+(abcd/100%10*10)+abcd/1000;if(abcd*9==dcba){System.out.println(abcd+"*9="+dcba);}}}}

1089*9=9801

框架如上,最有用的那行代码按下Ctrl+A可以看到,最好自己考虑一下再看答案参考:http://zhidao.baidu.com/link?url=_ubJJ2RDt72JZqe5-hHKrsKcpbbNCvaphf4Z7i04-YBMf7c-_BiLG-yeXl6cJzpLNYzC7S1jYptso7PYTBKnp_

大神能不能说说为什么要写dcba=(abcd%10*1000)+(abcd/10%10*100)+(abcd/100%10*10)+abcd/1000;这一行啊,为嘛我感觉很多余呢?
解决方案十五:
引用13楼u012875881的回复:

dcba=(abcd%10*1000)+(abcd/10%10*100)+(abcd/100%10*10)+abcd/1000;Quote: 引用2楼Android_iPhone的回复:
publicclassABCDtimes9equalsDCBA{publicstaticvoidmain(finalStringargv[]){intdcba=0;for(intabcd=1000;abcd<=9999;abcd++){

dcba=(abcd%10*1000)+(abcd/10%10*100)+(abcd/100%10*10)+abcd/1000;if(abcd*9==dcba){System.out.println(abcd+"*9="+dcba);}}}}

1089*9=9801

框架如上,最有用的那行代码按下Ctrl+A可以看到,最好自己考虑一下再看答案参考:http://zhidao.baidu.com/link?url=_ubJJ2RDt72JZqe5-hHKrsKcpbbNCvaphf4Z7i04-YBMf7c-_BiLG-yeXl6cJzpLNYzC7S1jYptso7PYTBKnp_

大神能不能说说为什么要写dcba=(abcd%10*1000)+(abcd/10%10*100)+(abcd/100%10*10)+abcd/1000;这一行啊,为嘛我感觉很多余呢?

分别取dcba的个十百千位数
解决方案:
引用13楼u012875881的回复:

dcba=(abcd%10*1000)+(abcd/10%10*100)+(abcd/100%10*10)+abcd/1000;Quote: 引用2楼Android_iPhone的回复:
publicclassABCDtimes9equalsDCBA{publicstaticvoidmain(finalStringargv[]){intdcba=0;for(intabcd=1000;abcd<=9999;abcd++){

dcba=(abcd%10*1000)+(abcd/10%10*100)+(abcd/100%10*10)+abcd/1000;if(abcd*9==dcba){System.out.println(abcd+"*9="+dcba);}}}}

1089*9=9801

框架如上,最有用的那行代码按下Ctrl+A可以看到,最好自己考虑一下再看答案参考:http://zhidao.baidu.com/link?url=_ubJJ2RDt72JZqe5-hHKrsKcpbbNCvaphf4Z7i04-YBMf7c-_BiLG-yeXl6cJzpLNYzC7S1jYptso7PYTBKnp_

大神能不能说说为什么要写dcba=(abcd%10*1000)+(abcd/10%10*100)+(abcd/100%10*10)+abcd/1000;这一行啊,为嘛我感觉很多余呢?

不然怎么知道dcba的值啊。其实也可以当作字符串处理,我是习惯字符串处理了。
解决方案:
引用6楼Inhibitory的回复:

期末JAVA两题编程不会写,楼主只会C。学校没有开Java的课程吗?如果没有开,为什么要你们用Java些程序?如果开了,这么简单的都些不出来,对的起你父母吗?大家不能为了点分没底线,这个是期末作业。

强烈顶,没开java怎么会有java期末考试,有开java了,会c不会java,这么简单的题目都做不出来,而且是函授了,还不好好学习。还好意思说只会c不会java,这两道java题语法上和c几乎是一样的,c的思路一样是可以用到java上的,只需要helloworld级的java水平。都读函授了,还不好好学,这种人真心不能帮
解决方案:
引用13楼u012875881的回复:

dcba=(abcd%10*1000)+(abcd/10%10*100)+(abcd/100%10*10)+abcd/1000;Quote: 引用2楼Android_iPhone的回复:
publicclassABCDtimes9equalsDCBA{publicstaticvoidmain(finalStringargv[]){intdcba=0;for(intabcd=1000;abcd<=9999;abcd++){

dcba=(abcd%10*1000)+(abcd/10%10*100)+(abcd/100%10*10)+abcd/1000;if(abcd*9==dcba){System.out.println(abcd+"*9="+dcba);}}}}

1089*9=9801

框架如上,最有用的那行代码按下Ctrl+A可以看到,最好自己考虑一下再看答案参考:http://zhidao.baidu.com/link?url=_ubJJ2RDt72JZqe5-hHKrsKcpbbNCvaphf4Z7i04-YBMf7c-_BiLG-yeXl6cJzpLNYzC7S1jYptso7PYTBKnp_

大神能不能说说为什么要写dcba=(abcd%10*1000)+(abcd/10%10*100)+(abcd/100%10*10)+abcd/1000;这一行啊,为嘛我感觉很多余呢?

#14楼+1当时也考虑用字符串处理了,考虑到LZ对C比较熟悉,没用Java独有的功能……
解决方案:
daxia们都已实现了,接分,多谢.
解决方案:
大家都实现了,这很简单。很好,希望给分!!1
解决方案:
第一道很明显其实很简单多几个判断和异常处理就行了!但是应用上java的特性继承封装多态和设计模式这样的思路就更好了
解决方案:
使用ifelseif语句对输入的价格进行判断就是了
解决方案:
引用4楼Android_iPhone的回复:

importjava.text.*;importjava.util.*;publicclassDiscountCalculator{publicstaticvoidmain(finalString[]args){do{try{StringinputString="";//商品总价输入用bufferSystem.out.print("请输入商品总价(直接回车则退出程序):");inputString=(newScanner(System.in)).nextLine();if(inputString==null||inputString.length()==0){break;//直接回车则退出程序}DoublefullPrice=0.0;//原价DoublediscountPrice=0.0;//折后价fullPrice=Double.valueOf(inputString);if(fullPrice<-Double.MAX_VALUE||Double.MAX_VALUE<fullPrice){thrownewNumberFormatException();}discountPrice=calculateDiscountPrice(fullPrice);printPrice(fullPrice,discountPrice);}catch(NumberFormatExceptione){System.out.println("您输入的商品总价的格式不正确,请重新输入!");}}while(true);System.out.println("程序结束,欢迎再次使用!");}/***根据商品总价计算出折后价**@paramfullPrice商品总价(原价)*@returndiscountPrice折后价*/privatestaticDoublecalculateDiscountPrice(DoublefullPrice){DoublediscountPrice=0.0;if(fullPrice>2000.0){//消费2000元以上的部分可以给予85折discountPrice=500.0+500.0*0.95+1000.0*0.90+(fullPrice-2000.0)*0.85;}elseif(fullPrice>1000.0){//消费1000元以上的部分可以给予9折discountPrice=500.0+500.0*0.95+(fullPrice-1000.0)*0.90;}elseif(fullPrice>500.0){//消费金额500元以上的部分可以给予95折discountPrice=500.0+(fullPrice-500.0)*0.95;}else{discountPrice=fullPrice;}returndiscountPrice;}/***@paramfullPrice商品总价(原价)*@paramdiscountPrice折后价*/privatestaticvoidprintPrice(DoublefullPrice,DoublediscountPrice){DecimalFormatdf=newDecimalFormat("#0.00");//输出格式System.out.println("=======================");System.out.println("原价:"+df.format(fullPrice)+"元");System.out.println("折后价:"+df.format(discountPrice)+"元");System.out.println("=======================");}}

请输入商品总价(直接回车则退出程序):a您输入的商品总价的格式不正确,请重新输入!请输入商品总价(直接回车则退出程序):-1=======================原价:-1.00元折后价:-1.00元=======================请输入商品总价(直接回车则退出程序):0=======================原价:0.00元折后价:0.00元=======================请输入商品总价(直接回车则退出程序):1=======================原价:1.00元折后价:1.00元=======================请输入商品总价(直接回车则退出程序):499=======================原价:499.00元折后价:499.00元=======================请输入商品总价(直接回车则退出程序):499.5=======================原价:499.50元折后价:499.50元=======================请输入商品总价(直接回车则退出程序):500=======================原价:500.00元折后价:500.00元=======================请输入商品总价(直接回车则退出程序):500.5=======================原价:500.50元折后价:500.48元=======================请输入商品总价(直接回车则退出程序):501=======================原价:501.00元折后价:500.95元=======================请输入商品总价(直接回车则退出程序):999=======================原价:999.00元折后价:974.05元=======================请输入商品总价(直接回车则退出程序):1000=======================原价:1000.00元折后价:975.00元=======================请输入商品总价(直接回车则退出程序):1001=======================原价:1001.00元折后价:975.90元=======================请输入商品总价(直接回车则退出程序):1999=======================原价:1999.00元折后价:1874.10元=======================请输入商品总价(直接回车则退出程序):2000=======================原价:2000.00元折后价:1875.00元=======================请输入商品总价(直接回车则退出程序):2001=======================原价:2001.00元折后价:1875.85元=======================请输入商品总价(直接回车则退出程序):1.7976931348623157E308=======================原价:179769313486231570000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000.00元折后价:152803916463296830000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000.00元=======================请输入商品总价(直接回车则退出程序):1.7976931348623158E308=======================原价:179769313486231570000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000.00元折后价:152803916463296830000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000.00元=======================请输入商品总价(直接回车则退出程序):1.7976931348623159E308您输入的商品总价的格式不正确,请重新输入!请输入商品总价(直接回车则退出程序):程序结束,欢迎再次使用!

第一个从for(inti=9999;i>999;i-=9)个人觉得这样更好一些
解决方案:
答案已出来了,接分,
解决方案:
第二题的简单算法publicclassTest9{publicstaticvoidmain(String[]args){StringBuilderbuilder=newStringBuilder(4);for(inti=9000,j=i/9;i<10000;i+=9,j=i/9){if(j%10==9){builder.setLength(0);if(Integer.parseInt(builder.append(i).reverse().toString())==j){System.out.format("%d*9=%dn",j,i);}}}}}

解决方案:
现在张口就要代码的,JAVA版主都不管了?
解决方案:
估计楼主已经考试过了
解决方案:
intfun(intsum){if(sum>2000)return500+500*0.95+1000*0.9+0.85*(sum-2000);if(sum>1000)return500+500*0.95+0.9*(sum-1000);if(sum>500)return500+0.95*(sum-500)elsesum;}
解决方案:
publicvoidtestGame(){inta=0;intb=0;intc=0;intd=0;for(a=1;a<=9;a++){for(b=0;b<=9;b++){for(c=0;c<=9;c++){for(d=0;d<=9;d++){if((a*1000+b*100+c*10+d)*9==(d*1000+c*100+b*10+a)){System.out.println(a*1000+b*100+c*10+d);}}}}}}
解决方案:
楼主,以后这种问题就不要来了,用if,else或者case都可以解决的问题,你既然会C语言,那么你肯定会用C写,转换成JAVA不久Ok了

时间: 2024-11-02 15:11:13

由于本人函授本科,期末JAVA两题编程不会写,楼主只会C。望高手们帮忙一下,明早一大早就要考试了,坐等的相关文章

java 基础题, 但不简单. 反正我很费解. 很费解.为什么调两个差不多的方法打印的结果不同?

问题描述 public class FinallyTest {public static void main(String[] args) {System.out.println(new FinallyTest().test());//这个打印结果为1.System.out.println(new FinallyTest().get());// 这个打印结果为2.}//调这个就打印1static int test() {int x = 1;try {return x;} finally {++x

java方法-java一个方法形参有两个,如何在调用的时候只传入一个参数

问题描述 java一个方法形参有两个,如何在调用的时候只传入一个参数 如题,有一个方法里两个形参,我另一个文件类中一个方法想要那个方法的返回值,可是第二个参数在这里用不到,能否只传第一个参数 如何实现,前提这个类不能继承后重写方法,因为多人合同写的. 解决方案 不可以,变通的办法是再写一个只有一个参数的函数重载形式,在其中给另一个参数一个预设值,间接调用. 解决方案二: 一个Action调用两个不同的方法 解决方案三: 调用的时候给一个无影响的值 解决方案四: 讲道理的话是不能这样做的,不过如果

java内部类-java实验题 内部类的定义与使用

问题描述 java实验题 内部类的定义与使用 定义一个Cube类,其中包含一个变量height,一个方法:计算立方体的体积(带形参,形参为面积).并在其内部定义一个Rectangle类,其中包含两个变量width和height,一个方法:计算底面积. 解决方案 class Cube { private double height; Cube() {} Cube(double height) { this.height = height; } public double volume(double

谢谢大家-java综合题,我真的不知道set get 和this联合用怎么用还有super 求大神解答

问题描述 java综合题,我真的不知道set get 和this联合用怎么用还有super 求大神解答 综合题(本题主要是考验同学们对Java语法的熟悉程度) 定义一个抽象的"Role"类,有姓名,年龄,性别等成员变量 1. 要求尽可能隐藏所有变量(能够私有就私有,能够保护就不要公有),再通过GetXXX()和SetXXX()方法对各变量进行读写.具有一个抽象的play()方法,该方法不返回任何值,同时至少定义两个构造方法.Role类中要体现出this的几种用法. 2. 从Role类派

怎么都想不通的java基础题

问题描述 求教:最好能够深入虚拟机来讲解,图文并茂那就最好不过了一public class Test { public static void main(String[] args) { Integer i1 = 127; Integer i2 = 127; System.err.println(i1 == i2); i1 = 128; i2 = 128; System.err.println(i1 == i2); } } 二方法m1和m2有区别吗?什么区别public class Test {

关于java两个数取模的问题

问题描述 关于java两个数取模的问题 public class Test { public static void main(String [] args) { int b=5a=3; System.out.println(a%b); } } 为什么输出结果为3,而不是0? 解决方案 3除以5,商0余3!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 解决方案二: a%b = 3 a/b = 0. % 取模,也就是取余数,a = 3 b=5 a%b = 3%5=0

编程题-面试中碰到的java基础题

问题描述 面试中碰到的java基础题 今天面试碰到这么一个问题,想了半天,不知如何回答 P1=V1; P2=V2; method(P1,P2){ P1=V3; P2=V4; } 结果是P1=V1;P2=V4;问P1P2是什么类型的时候才会出现这种情况 解决方案 在传递的时候,如果传递的是原生数据类型,则值不会改变 public class Test { public static void main(String[] args) { int a = 1; int b = 2; swap(a,b)

JAVA两个部署在不同服务器上的程序访问同一个表,如何避免同时向这个表中插入数据 ?

问题描述 JAVA两个部署在不同服务器上的程序访问同一个表,如何避免同时向这个表中插入数据 ? JAVA两个部署在不同服务器上的程序访问同一个表,如何避免同时向这个表中插入数据 ?刚写了个程序发现存在这个问题,原以为这种概率不会太高,但还是存在,怎么解决?谢谢 解决方案 其实和进程互斥的原理应该是一样的吧,在某一服务器访问该公共表的时候加锁,并同步更新数据至所有可达服务器,这样别的服务器也有访问请求时,就会等锁解开再进行.加锁的服务器程序应负责在释放资源后解锁. 解决方案二: 情况是这样的,现在

java算法题,公司的笔试题

问题描述 java算法题,公司的笔试题 suppose you have N cakes, N is an interger>0 // at each time, you can either eat 1 cake, or 2 cakes or 3 cakes // PROBLEM: How many ways can you eat all N cakes // for example, N = 4, (1,2,1) and (1,1,2) are considered to be diffe