Description
啤酒每罐 2.3 元, 饮料每罐 1.9 元. 小明买了若干啤酒和饮料, 一共花了 N 元. 请你计算他买了几罐啤酒和几罐饮料 (罐数为整数).
Input
一个 double 型数据 N(0<=N<=20000)
Output
输出啤酒和饮料的罐数, 如果存在多组结果按照啤酒数从大到小排列; 如果没有解答输出 "No Solution"
- Sample Input
- 82.3
- Sample Output
- 30 7 11 30
- #include <cstdio>
- #include <iostream>
- #include <cmath>
- #include <algorithm>
- #include <string>
- #include <cstring>
- #include <queue>
- using namespace std;
- #define eps 1e-6
- int main()
- {
- double n;
- int x, y, m = 0;
- queue<int>colo;
- queue<int>drink;
- scanf("%lf", &n);
- x = n/2.3;
- for(int i = x; i>0; i--)
- {
- y = (int)((n-(i*2.3))/1.9);
- //printf("%d : %lf\n", i, y*1.9+i*2.3);
- if(fabs(y*1.9+i*2.3-n) <= eps)// 为什么这个判断得不到正确的结果
- {
- printf("%d %d\n", i, y);
- m++;
- }
- }
- if(m == 0)printf("No Solution\n");
- return 0;
- }
来源: http://www.bubuko.com/infodetail-2947528.html