等于是一种是a元每次,一种是b元/m次
先判断b/m和a哪个更大,如果b/m更大,那就直接a * n就是总费用。
如果a更大,那么就看n是m的多少倍,这个倍数乘以b;然后再看n%m是多少,看a和余数的积是否大于b,如果大于b,则最后加上b,否则加上a和余数的积
#include <iostream>
using namespace std;
int main()
{
int n,m,a,b,sum=0,k;
cin>>n>>m>>a>>b;
if(b*1.0/m >= a)
sum = a * n;
else
{
k = n/m;
sum += k * b;
k = n%m;
if(a*k > b)
sum += b;
else
sum += a*k;
}
cout<<sum;
}
#include<bits/stdc++.h>
using namespace std;
int n;//需要坐n站
int a,b,m;//题目中的变量
int main()
{
cin>>n;//输入
cin>>m>>a>>b;
int s=a*m;//s表示如果每次坐1站,坐m站要多少钱
if(s<b)//如果s<b,表示每次坐一站划算
{
cout<<n*a;//输出
}
else//s>b,尽量每次坐m站
{
int k=n%m;//求坐x次m站后剩下几站
int x=(n-k)/m;//求x
cout<<x*b+a*k;//输出
}
return 0;
}