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 ", i, y*1.9+i*2.3); if(fabs(y*1.9+i*2.3-n) <= eps)//为什么这个判断得不到正确的结果 { printf("%d %d ", i, y); m++; } } if(m == 0)printf("No Solution "); return 0; }