课堂练习(卖书问题)

设计思想:

通过简单的枚举计算,发现只有在   买书数=3+5*n(n>0)时才会有特殊情况产生,其他情况均一致,所以就利用switch语句对 买书数除5的余数进行判断,进行不同的分类计算,其中当余数为3时进行买书数是否大于5的判断,进行计算;

程序代码:

package text;
import java.util.Scanner;
public class Halibote {
    public static double money(int m0,int m1){
        double money=0;
        switch(m0){
        case 0:
            money=m1*8*5*0.75;
            break;
        case 1:
            money=m1*8*5*0.75+8;
            break;
        case 2:
            money=m1*8*5*0.75+8*2*0.95;
            break;
        case 3:
        {
            if(m1==0)
            {
                money=m1*8*5*0.75+8*3*0.9;
            }
            else
            {
                money=(m1-1)*8*5*0.75+8*4*0.8*2;
            }
            break;
        }
        case 4:
            money=m1*8*5*0.75+8*4*0.8;
            break;
            default:
                break;
        }
        return money;
    }
    public static void main(String args[]){
        Scanner in=new Scanner(System.in);
        int n;
        System.out.println("请输入购书总数:");
        n=in.nextInt();
        int m0,m1;
        m0=n%5;//按照五本一组多出来的数目
        m1=n/5;
        double money;
        money=money(m0,m1);
        System.out.println(money);
    }
}

运行结果截图:

个人感想:

程序设计有时需要自己事前进行一些枚举计算方便进行寻找规律,进而利用规律编程。

原文地址:https://www.cnblogs.com/dawn-sky/p/5551898.html