giegie666 发表于 2022-12-23 22:03:42

商品折扣 函数

某二手网站为促进成交,开发了一个自动折扣的功能:自报价之日开始每隔n天自动将商品当前价格按固定折扣率(rate)打折。若折扣后的价格低于底价,则显示底价。
例如:某件商品报价为100元,底价为80元,自动折扣率为0.9,每过5天打折一次。则5天后的价格为100 * 0.9 = 90元;10天后的价格为90 * 0.9 = 81元;15天后,由于 81 * 0.9 < 80, 所以价格为80元。

函数接口定义:
double discount(double price, double basePrice, double rate, int n, int m);
其中 price 表示报价;basePrice 表示底价;rate 表示折扣率;n 表示折扣周期;m 表示距离首次报价的天数 。

裁判测试程序样例:
#include<stdio.h>
double discount(double price, double basePrice, double rate, int n, int m);
int main(){
    double price, basePrice, rate, sellingPrice;
    //price:报价,basePrice:底价rate:折扣率 sellingPrice:售价
    int n, m;    //n :折扣周期;m:距离首次报价的天数 。
    scanf("%lf%lf%lf%d%d", &price, &basePrice, &rate, &n, &m);
    sellingPrice = discount(price, basePrice, rate, n, m);
    printf("%.2lf\n", sellingPrice);
    return 0;
}

/* 请在这里填写答案 */

jhq999 发表于 2022-12-23 23:59:03

double discount(double price, double basePrice, double rate, int n, int m);
其中 price 表示报价;basePrice 表示底价;rate 表示折扣率;n 表示折扣周期;m 表示距离首次报价的天数 。

double discount(double price, double basePrice, double rate, int n, int m)
{
        while(m>=n&&price>baseprice)
        {
                price*=rate;
                m-=n;
        }
        return price>baseprice?price:baseprice;
}
页: [1]
查看完整版本: 商品折扣 函数