@[miqim](/user/966989)
变量 min 初始定义太大了
by zjhzs666 @ 2023-05-13 15:32:46
@[miqim](/user/966989)
```cpp
#include<bits/stdc++.h>
using namespace std;
int n,a1,a2,b1,b2,c1,c2,pen1,pen2,pen3,x[3];
int main(){
cin>>n>>a1>>a2>>b1>>b2>>c1>>c2;
while(pen1<n) { pen1+=a1; x[0]+=a2; }
while(pen2<n) { pen2+=b1; x[1]+=b2; }
while(pen3<n) { pen3+=c1; x[2]+=c2; }
sort(x,x+3);
cout<<x[0];
}
```
by zjhzs666 @ 2023-05-13 15:33:33
1. 数组是 ```a[4],b[4],c[4]```,不然会溢出
2. 是```if((n/a[i])*b[i]<min)``` 而不是```if(n/a[i]+1*b[i]<min)``` 。
by LiuTaifu @ 2023-05-13 15:36:09
@[zjhzs666](/user/866692) 你打的似乎和他的算法不符
by LiuTaifu @ 2023-05-13 15:37:30
@[LiuTaifu](/user/866523)
对的呢~~~其实是懒得看他的代码了,嘻嘻~~
by zjhzs666 @ 2023-05-13 15:45:25
@[LiuTaifu](/user/866523) 谢谢
by miqim @ 2023-05-13 15:51:01
@[zjhzs666](/user/866692) 谢谢
by miqim @ 2023-05-13 15:51:37
其实这道题不用数组的(可爱的while输入)
```cpp
#include<bits/stdc++.h>
using namespace std;
int n,num,price,money[10005],cntm,mins=10000000;
int main()
{
cin>>n;
while(cin>>num>>price)
{
if(n%num==0)
{
money[++cntm]=n/num*price;
}
if(n%num!=0)
{
money[++cntm]=(n/num+1)*price;
}
}
for(int i=1;i<=cntm;i++)
{
if(money[i]<mins)
{
mins=money[i];
}
}
cout<<mins;
return 0;
}
by Ilovemywinnie @ 2023-05-15 20:14:38
AC代码
```
#include<bits/stdc++.h>
using namespace std;
int FindMinPrice(int n, int num ,int boxNum ,int price) {
int min_price;
boxNum = n / num;
min_price = price * boxNum;
if (n % num != 0)min_price += price;
return min_price;
}
int main() {
unsigned long long num1, num2, num3,
price1, price2, price3,
minPrice1, minPrice2, minPrice3,
boxNum1, boxNum2, boxNum3;
int n;
cin >> n >> num1 >> price1 >> num2 >> price2 >> num3 >> price3;
minPrice1 = FindMinPrice(n, num1,boxNum1, price1);
minPrice2 = FindMinPrice(n, num2,boxNum2, price2);
minPrice3 = FindMinPrice(n, num3,boxNum3, price3);
if (minPrice1 > minPrice2)swap(minPrice1, minPrice2);
if (minPrice2 > minPrice3)swap(minPrice2, minPrice3);
if (minPrice1 > minPrice2)swap(minPrice1, minPrice2);
cout << minPrice1;
return 0;
}
```
by Tim_the_best @ 2023-06-01 21:46:54