求救(555),88分

P1909 [NOIP2016 普及组] 买铅笔

@[YSzita](/user/1036057) f开的太小了 另外其实可以用min来求最小值
by PF_anyone @ 2023-07-24 22:43:03


还是不懂…… ```cpp #include<bits/stdc++.h> using namespace std; int main(){ int a,b,c,d=1; double e,f=1000000.0; cin>>a>>b>>c; while(1==1){ if(b*d>=a){ e=c*d*1.0; break; } d++; } f=min(f,e); cin>>b>>c; d=1; while(1==1){ if(b*d>=a){ e=c*d*1.0; break; } d++; } f=min(f,e); cin>>b>>c; d=1; while(1==1){ if(b*d>=a){ e=c*d*1.0; break; } d++; } f=min(f,e); cout<<f; return 0; } ```
by YSzita @ 2023-07-25 20:10:28


第6个例子
by YSzita @ 2023-07-25 20:16:33


@[YSzita](/user/1036057) f还是不够大,如果输入数据有一个 9999 1 9999 那价格飙到快1亿了 ```cpp #include<iostream> #include<algorithm> using namespace std; int main() { int n,sum1=0,sum2=0,sum3=0,temp; cin >> n; temp = n;//保存变量 int package, price; for (int i = 1; i <= 3; i++) { cin >> package >> price; if (i == 1) { while (n > 0) { n -= package; sum1 += price; } } else if(i==2) { while (n > 0) { n -= package; sum2 += price; } } else if (i == 3) { while (n > 0) { n -= package; sum3 += price; } } n = temp; } cout << min(min(sum1, sum2),sum3) << endl; return 0; } ```
by PF_anyone @ 2023-07-26 11:52:38


@[YSzita](/user/1036057) 下面这种简洁一点,直接是三个数之间比较,不用加第三方数据 ```cpp #include<iostream> #include<algorithm> using namespace std; long long a[4] = {};//数组保存总价格 int main() { int n, temp; cin >> n; temp = n;//保存变量 int package, price; for (int i = 1; i <= 3; i++) { cin >> package >> price; while (n > 0) { n -= package;//所需减去一个包装 a[i] += price;//加上一份价格 } n = temp; } cout << min({ a[1], a[2], a[3] }) << endl;//三组数据比较大小输出最小值 return 0; } ```
by PF_anyone @ 2023-07-26 11:55:55


|