软件工程个人作业14

软件工程个人作业14

思路:(其中X套书指的是X套一模一样的套书;Y本书指Y本一样的书且和前面的套书里的一本一样)

买一本书时,只有一种情况,8元;

买两本书时,有2种情况:1. 买2本一样的书,2*8=16元

                        2. 买1套2本的书,2*8-2*8*5%=15.2

买三本书时,有3种情况:1. 买3本一样的书,3*8=24元

                        2. 买1套2本的书和1本书的书,3*8-8*2*5%=23.2

                        3. 买1套3本的,8*3-3*8*10%=21.6

买四本书时,有4种情况:1. 买4本一样的书,4*8=32元

                        2. 买1套2本的书和2本书的书,8*4-2*8*5%=31.2

                        3. 买2套2本的书,8*4-8*2*2*5%=30.4

                        4. 买1套3本的书和1本书的书,8*4-8*3*10%=29.6

                        5. 买1套4本的书,8*4-8*4*20%=25.6

买5本书时,有7种情况:1. 买5本一样的书,5*8=40元

                        2. 买1套2本的书和3本一样的书,8*5-2*8*5%=39.2

                        3. 买2套2本的书和1本书的书,8*5-8*2*2*5%=38.4

                        4. 买1套3本的书和2本一样的书,8*5-8*3*10%=37.6

                        5. 买1套3本的书和1套2本的书和1套3本里的书重复的书,8*5-8*3*10%-8*2*5%=36.8

                        6. 买1套4本的书和1本书的书,8*5-8*4*20%=33.6

                        7. 买1套5本的书,8*5-8*5*25%=30

买6本书时,有10种情况:1. 买6本一样的书,6*8=48元

                        2. 买1套2本的书和4本一样的书,,6*8-2*8*5%=47.2

                        3. 买2套2本的书和2本一样的书,6*8-2*8*2*5%=46.4

                        4. 买3套2本的书,6*8-3*8*2*5%=45.6

                        5. 买1套3本的书和3本一样的书,6*8-3*8*10%=45.6

                        6. 买1套3本的书和1套2本的书和1套3本里的书重复的书和1本书,6*8-3*8*10%-8*2*5%=44.8

                        7. 买2套3本的书,6*8-2*8*3*10%=43.2

                        8. 买1套4本的书和2本一样的书,6*8-8*4*20%=41.6

                        9. 买1套4本的书和一套2本且和1套4本里的书重复的书,6*8-8*4*20%-8*2*5%=40.8

10. 买1套5本的书和1本书的书,6*8-8*5*25%=38

买7本书时,有13种情况:1. 买7本一样的书,7*8=56元

                        2. 买1套2本的书和5本一样的书,,7*8-2*8*5%=55.2

                        3. 买2套2本的书和3本一样的书,7*8-2*8*2*5%=54.4

                        4. 买3套2本的书和1本书,7*8-3*8*2*5%=53.6

                        5. 买1套3本的书和4本一样的书,7*8-3*8*10%=53.6

                        6. 买1套3本的书和1套2本的书且和1套3本里的书重复的书和2本一样的书,7*8-3*8*10%-8*2*5%=52.8

                        7. 买1套3本的书和2套2本的书且和1套3本里的书重复的书,7*8-3*8*10%-2*8*2*5%=52

                        8. 买2套3本的书和1本书,7*8-2*8*3*10%=51.2

                        9. 买1套4本的书和3本一样的书,7*8-8*4*20%=49.6

                        10. 买1套4本的书和一套2本且和1套4本里的书重复的书和1本书,7*8-8*4*20%-8*2*5%=48.8

                        11. 买一套4本的书和一套3本且和1套4本里的书重复的书,7*8-8*4*20%-8*3*10%=47.2

12. 买1套5本的书和2本一样的书,7*8-8*5*25%=46

13. 买1套5本的书和1套2本且和1套5本里的书重复的书,

7*8-8*5*25%-8*2*5%=45.2

由此可见,购买的每套图书里的本数最多,折扣越大,价格越低。

源程序:

package book;

import java.util.InputMismatchException;
import java.util.Scanner;

public class book {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Scanner sc =new Scanner(System.in);
        int bug=0;     //输入错误时的判断
        int ts=0;      //可以将书分为ts套5本的图书
        int ys=0;      //分为ts套5本的图书以后剩下的图书可以分为1套ys本的图书
        int num=0;     //图书的本数
        String jg="最少的价钱是:";    //结果
        System.out.println("请输入购买图书的本数:(必须是大于0的正整数)");        
        try                              //判断输入是否错误
        {
            num=sc.nextInt();
        }
        catch(InputMismatchException e)  //捕捉输入错误
        {
             System.out.println("输入不合法!请输入整数!");
             bug=1;
         }
        if(bug!=1)       //输入正确时
        {
            ts=num/5;    //可以将书分为ts套5本的图书
            ys=num%5;    //分为ts套5本的图书以后剩下的图书可以分为1套ys本的图书
            /*计算结果*/
            if(ys==0)    
            {
                jg+=8*num-8*5*0.25*ts;
            }
            if(ys==1)    
            {
                jg+=8*num-(ts*8*5*0.25+8);
            }
            if(ys==2) 
            {
                jg+=8*num-(ts*8*5*0.25+8*2*0.05);
            }
            if(ys==3)   
            {
                jg+=8*num-(ts*8*5*0.25+8*3*0.1);
            }
            if(ys==4)   
            {
                jg+=8*num-(ts*8*5*0.25+8*4*0.2);
            }
            System.out.println(jg);
        }
    }
}

截图:

个人总结:

本次程序要找到规律就很简单,锻炼了我的思考能力。

原文地址:https://www.cnblogs.com/gzgz/p/5547751.html