// 阿汪面前有两只盲盒,每只盒子打开都有两种可能:或者装了 X 克狗粮,或者是一只容量为 Y 克的狗粮储蓄盒。如果是狗粮,阿汪可以快乐地吃掉;如果是空储蓄盒,那就倒霉了,阿汪必须想办法找到狗粮把这只储蓄盒装满,自己还吃不到。// 正当阿汪发愁不知道该怎么选的时候,铲屎官大手一挥:“小孩子才做选择,大人全都要!”但全都要的结果,却不一定是赚了还是亏了……// 我们假设聪明的阿汪总是能嗅出狗粮最多的盒子,并且绝不会选任何储蓄盒。而铲屎官没有这样的鼻子,他一定是全都要。铲屎官如果打开了有储蓄盒的盒子,就必须想办法把储蓄盒装满,他会优先用另一只盒子里的狗粮装(如果另外一只盒子里有狗粮),不够了还得自己去买新的狗粮,这样阿汪可就亏啦,什么都吃不到了。本题就请你判断阿汪到底是赚了还是亏了。// 输入格式: // 输入在一行中给出两个整数,绝对值都不超过 100,中间用一个空格分开,分别代表两只盒子里的东西。如果是正数就表示是狗粮的份量,如果是负数就表示绝对值是空盆的容量。两个数都肯定不是 0,因为保证没有空盒子。// 输出格式: // 第一行输出两个结果:如果让阿汪选能吃到的狗粮 A,和如果铲屎官全都要能吃到的狗粮 B。两个数字间用一个空格分开。如果铲屎官的决定让阿汪赚到了,就在第二行输出一个笑脸 ^_^,否则输出一个哭脸 T_T。但如果反正什么都吃不到(两个盒子里都没有狗粮),就输出一张躺平脸 -_-。 #include <iostream> #include <algorithm> using namespace std;int main() {int a, b;cin >> a >> b;int A = max(a > 0 ? a : 0, b > 0 ? b : 0);//A:狗对两个盒子的选择int B = 0;//B:人的方法能吃到的狗粮数if (a > 0 && b > 0) {//①两个盒子中都有狗粮B = a + b; } else if (a > 0 || b > 0) {//②两个盒子中只有一个有狗粮int food = max(a, b); int box = min(a, b); if (food >= -box) {B = food + box; } else {//③两个盒子都没有狗粮,无论怎样都吃不到B = 0; }}cout << A << " " << B << endl;if (A == 0 && B == 0) {cout << "-_-" << endl; //两个盒子都为0} else if (B > A) {cout << "^_^" << endl;//人的方法吃得更多} else {cout << "T_T" << endl;//狗的方法吃得更多 }return 0; }
//模拟简单运算器的工作。假设计算器只能进行加减乘除运算,运算数和结果都是整数,四种运算符的优先级相同,按从左到右的顺序计算。// 输入格式: // 输入在一行中给出一个四则运算算式,没有空格,且至少有一个操作数。遇等号”=”说明输入结束。// 输出格式: // 在一行中输出算式的运算结果,或者如果除法分母为0或有非法运算符,则输出错误信息“ERROR”。 #include <iostream> #include <string> using namespace std; int main() {string s;cin >> s;//输入算式int result = 0;int num = 0;char sign = '+';int i = 0;while (isdigit(s[i])) {num = num * 10 + (s[i] - '0');i++;}//识别数字result = num;while (i < s.length()) {sign = s[i];//将当前遇到的运算符赋值给signi++;if (sign == '=') {//判断当前运算符是否是象征终止运算的=cout << result << endl;break;}if (sign != '+' && sign != '-' && sign != '*' && sign != '/') {//判断是否有不合法的运算符cout << "ERROR" << endl;return 0;}num = 0;while (i < s.length() && isdigit(s[i])) {num = num * 10 + (s[i] - '0');i++;}//判断下一个参与运算的数字是多少if (sign == '+') {result += num;} else if (sign == '-') {result -= num;} else if (sign == '*') {result *= num;} else if (sign == '/') {if (num == 0) {cout << "ERROR" << endl;return 0;}result /= num;}//进行运算 }return 0; }