月饼(25)

版权声明:转载请注明博主地址 https://blog.csdn.net/weixin_43885417/article/details/86612077

在这里插入图片描述
在这里插入图片描述
针对这道题,核心算法如下:

  1. 首先我们需要定义一个N * 3的数组,用于存放每种月饼的库存量,月饼的总售价,和月饼的单价。保证一 一对应。
  2. 然后,我们要求出每种月饼的单价。
  3. 对月饼单价进行降序排序。
  4. 定义递归函数,
    (1)每次最大需求量减去,当前月饼的总量,总价格变量直接累加上最大需求量减去,当前月饼的总量,价格变量直接累加,当前月饼的总售价。
    (2)如果最大需求量,已经减到小于当前的月饼库存量,这个时候,总价格变量加上,当前用最大需求量值乘上当前月饼单价。
  5. 输出结果总价,程序结束。
    下面看代码:
import java.util.Scanner;
public class Main {
	static double count = 0;
	static int num = 0;
	static double countMoney = 0;
	static double countNum = 0;
	static double [][] data;
	public static void main(String[] args) {
		Scanner sca = new Scanner(System.in);
		num   = sca.nextInt();
		data  = new double [num][3];
		count = sca.nextInt();
		for(int i = 0; i < num; i++) {
			data[i][0] = sca.nextFloat();
		}
		for(int j = 0; j < num; j++) {
			data[j][1] = sca.nextFloat();
		}
		for(int k = 0; k < num; k++) {
			data[k][2] = data[k][1] / (data[k][0] * 1.000);
		}
		sort();
		showResult(0);
	}
	public static void showResult(int n) {
		if(count == 0 || n == num) {
			System.out.println(String.format("%.2f", countMoney));
			return;
		}
		if(count >= data[n][0]) {
			count -= data[n][0];
			countMoney += data[n][1];
		}else {
			countMoney += (count * data[n][2]);
			count = 0;
		}
		showResult(n + 1);
	}
	//排序
    public static void sort() {
    	 int i, j;
         double temp;
         for (j = 0; j < num; j++) {
             for (i = num - 1; i > j; i--) {
                 if (data[i][2] > data[i - 1][2]) {
                	 temp = data[i][0];
                	 data[i][0] = data[i - 1][0];
                	 data[i - 1][0] = temp;
                	 
                	 temp = data[i][1];
                	 data[i][1] = data[i - 1][1];
                	 data[i - 1][1] = temp;
                	 
                	 temp = data[i][2];
                	 data[i][2] = data[i - 1][2];
                	 data[i - 1][2] = temp;
                 }
             }
         }
    }
}

猜你喜欢

转载自blog.csdn.net/weixin_43885417/article/details/86612077
今日推荐