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

hyccy 2014-06-21 12:38:38
某商场10年店庆活动,规定消费金额500元以上的部分可以给予95折,消费1000元以上的部分可以给予9折,消费2000元以上的部分可以给予85折。现要求设计一个程序,要求根据用户从键盘输入的商品总价计算出折后价。


要求输出格式为:


=======================
原价:600.00元
折后价:595.00元
=======================


设有一个四位数,它的四位数字分别是ABCD,而其又满足一下条件:ABCD*9=DCBA,试编写一段小程序计算这个四位数究竟是多少。
...全文
1416 29 打赏 收藏 转发到动态 举报
写回复
用AI写文章
29 条回复
切换为时间正序
请发表友善的回复…
发表回复
zy_think123 2014-06-30
  • 打赏
  • 举报
回复
楼主,以后这种问题就不要来了,用if,else或者case都可以解决的问题,你既然会C语言,那么你肯定会用C写,转换成JAVA不久Ok了
lliiqiang 2014-06-30
  • 打赏
  • 举报
回复
int fun(int sum){ if(sum>2000) return 500+500*0.95+1000*0.9+0.85*(sum-2000); if(sum>1000) return 500+500*0.95+0.9*(sum-1000); if(sum>500) return 500+0.95*(sum-500) else sum; }
goInfall 2014-06-30
  • 打赏
  • 举报
回复
public void testGame(){ int a = 0; int b = 0; int c = 0; int d = 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); } } } } } }
业余草 2014-06-27
  • 打赏
  • 举报
回复
估计楼主已经考试过了
时光清浅 2014-06-26
  • 打赏
  • 举报
回复
现在张口就要代码的,JAVA版主都不管了?
sunbo624 2014-06-26
  • 打赏
  • 举报
回复
第二题的简单算法

public class Test9 {

	public static void main(String[] args) {
		
		StringBuilder builder = new StringBuilder(4);
		
		for(int i = 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 = %d\n", j, i);
					
				}
				
			}
			
		}
		
	}

}
zgycsmb 2014-06-26
  • 打赏
  • 举报
回复
答案已出来了, 接分,
zgycsmb 2014-06-25
  • 打赏
  • 举报
回复
daxia们都已实现了, 接分, 多谢.
sunbo624 2014-06-25
  • 打赏
  • 举报
回复
引用 4 楼 Android_iPhone 的回复:

import java.text.*;
import java.util.*;

public class DiscountCalculator {

    public static void main(final String[] args) {
        do {
            try {
                String inputString = ""; // 商品总价输入用buffer
                System.out.print("请输入商品总价(直接回车则退出程序):");
                inputString = (new Scanner(System.in)).nextLine();
                if (inputString == null || inputString.length() == 0) {
                    break; // 直接回车则退出程序
                }

                Double fullPrice = 0.0; // 原价
                Double discountPrice = 0.0; // 折后价
                fullPrice = Double.valueOf(inputString);
                if (fullPrice < -Double.MAX_VALUE
                        || Double.MAX_VALUE < fullPrice) {
                    throw new NumberFormatException();
                }

                discountPrice = calculateDiscountPrice(fullPrice);
                printPrice(fullPrice, discountPrice);
            } catch (NumberFormatException e) {
                System.out.println("您输入的商品总价的格式不正确,请重新输入!");
            }
        } while (true);
        
        System.out.println("程序结束,欢迎再次使用!");
    }

    /**
     * 根据商品总价计算出折后价
     *
     * @param fullPrice 商品总价(原价)
     * @return discountPrice 折后价
     */
    private static Double calculateDiscountPrice(Double fullPrice) {
        Double discountPrice = 0.0;
        if (fullPrice > 2000.0) {
            // 消费2000元以上的部分可以给予85折
            discountPrice
                    = 500.0
                    + 500.0 * 0.95
                    + 1000.0 * 0.90
                    + (fullPrice - 2000.0) * 0.85;
        } else if (fullPrice > 1000.0) {
            // 消费1000元以上的部分可以给予9折
            discountPrice
                    = 500.0
                    + 500.0 * 0.95
                    + (fullPrice - 1000.0) * 0.90;
        } else if (fullPrice > 500.0) {
            // 消费金额500元以上的部分可以给予95折
            discountPrice
                    = 500.0
                    + (fullPrice - 500.0) * 0.95;
        } else {
            discountPrice = fullPrice;
        }
        return discountPrice;
    }

    /**
     * @param fullPrice 商品总价(原价)
     * @param discountPrice 折后价
     */
    private static void printPrice(Double fullPrice, Double discountPrice) {
        DecimalFormat df = new DecimalFormat("#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(int i = 9999; i > 999; i-=9) 个人觉得这样更好一些
qq_16896339 2014-06-25
  • 打赏
  • 举报
回复
使用if else if语句对输入的价格进行判断就是了
jiajing1990_ 2014-06-25
  • 打赏
  • 举报
回复
第一道 很明显 其实很简单 多几个判断 和异常处理就行了!但是应用上java的特性 继承 封装 多态 和设计模式 这样的思路就更好了
业余草 2014-06-25
  • 打赏
  • 举报
回复
大家都实现了,这很简单。很好,希望给分!!1
日知己所无 2014-06-24
  • 打赏
  • 举报
回复
引用 13 楼 u012875881 的回复:
dcba = (abcd%10*1000) + (abcd/10%10*100) + (abcd/100%10*10) + abcd/1000; [quote=引用 2 楼 Android_iPhone 的回复:]
public class ABCDtimes9equalsDCBA {
    public static void main(final String argv[]) {
        int dcba = 0;
        for(int abcd = 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;这一行啊,为嘛我感觉很多余呢?[/quote] #14楼+1 当时也考虑用字符串处理了,考虑到LZ对C比较熟悉,没用Java独有的功能……
suciver 2014-06-24
  • 打赏
  • 举报
回复
引用 6 楼 Inhibitory 的回复:
期末JAVA两题编程不会写,楼主只会C。 学校没有开Java的课程吗? 如果没有开,为什么要你们用Java些程序? 如果开了,这么简单的都些不出来,对的起你父母吗? 大家不能为了点分没底线,这个是期末作业。
强烈顶,没开java怎么会有java期末考试,有开java了,会c不会java,这么简单的题目都做不出来,而且是函授了,还不好好学习。还好意思说只会c不会java,这两道java题语法上和c几乎是一样的,c的思路一样是可以用到java上的,只需要hello world级的java水平。都读函授了,还不好好学,这种人真心不能帮
逍遥jc 2014-06-24
  • 打赏
  • 举报
回复
引用 13 楼 u012875881 的回复:
dcba = (abcd%10*1000) + (abcd/10%10*100) + (abcd/100%10*10) + abcd/1000; [quote=引用 2 楼 Android_iPhone 的回复:]
public class ABCDtimes9equalsDCBA {
    public static void main(final String argv[]) {
        int dcba = 0;
        for(int abcd = 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;这一行啊,为嘛我感觉很多余呢?[/quote] 不然怎么知道dcba的值啊。其实也可以当作字符串处理,我是习惯字符串处理了。
HolyHealth 2014-06-24
  • 打赏
  • 举报
回复
引用 13 楼 u012875881 的回复:
dcba = (abcd%10*1000) + (abcd/10%10*100) + (abcd/100%10*10) + abcd/1000; [quote=引用 2 楼 Android_iPhone 的回复:]
public class ABCDtimes9equalsDCBA {
    public static void main(final String argv[]) {
        int dcba = 0;
        for(int abcd = 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;这一行啊,为嘛我感觉很多余呢?[/quote] 分别取dcba的个十百千位数
dandan8989251 2014-06-23
  • 打赏
  • 举报
回复
说的对.... 感觉下次类似的写思路就好了
92浩 2014-06-23
  • 打赏
  • 举报
回复
dcba = (abcd%10*1000) + (abcd/10%10*100) + (abcd/100%10*10) + abcd/1000;
引用 2 楼 Android_iPhone 的回复:
public class ABCDtimes9equalsDCBA {
    public static void main(final String argv[]) {
        int dcba = 0;
        for(int abcd = 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;这一行啊,为嘛我感觉很多余呢?
rumlee 2014-06-23
  • 打赏
  • 举报
回复
引用 11 楼 rumlee 的回复:
会c的人用java来做这个,只需要花一个小时学习java就足够了,因为while、if、for等基本的语法c和java都是一样的,唯一不同的是java面向对象,需要定义一个类,而c不用。就这点区别一个小时足够学习了。
你只需要看一个java的helloworld程序,然后结合你学习的c知识就可以做了。
rumlee 2014-06-23
  • 打赏
  • 举报
回复
会c的人用java来做这个,只需要花一个小时学习java就足够了,因为while、if、for等基本的语法c和java都是一样的,唯一不同的是java面向对象,需要定义一个类,而c不用。就这点区别一个小时足够学习了。
加载更多回复(9)

62,621

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧