柿子饼同学 发表于 2022-1-22 15:22:46

鸡蛋问题

额就是这道题 , 不明白为什么答案是蛋的时候用(y+n-m-x)等 , 不知道什么意思
求解释{:10_254:}

傻眼貓咪 发表于 2022-1-22 16:57:37

本帖最后由 傻眼貓咪 于 2022-1-22 17:08 编辑

我重复用你的题目步骤 1 至 6(只是鸡换成蛋而已),如图:

柿子饼同学 发表于 2022-1-22 18:03:57

傻眼貓咪 发表于 2022-1-22 16:57
我重复用你的题目步骤 1 至 6(只是鸡换成蛋而已),如图:

谢谢 , 我发现我是把蛋错想成 x 个人了
现在又算了一遍 , 然后把程序写出来了 , 运行正确{:10_279:}#include <bits/stdc++.h>
using namespace std;
int main(){
        int n, m, x, y;
        scanf("%d%d%d%d", &n, &m, &x, &y);
       
        float a1 = (-m+n-x+y)/2;//假设蛋对 , a1 + b1 = y
        float b1 = (m-n+x+y)/2;
        float a2 = (m+y-x)/2;   //假设鸡对 , a2 + b2 = y
        float b2 = (-m+y+x)/2;
        bool egg = 0, chicken = 0;
       
        if(0<=a1 && a1<=n-x && 0<=b1 && b1<=x && !((m-n+x+y)%2)){ //最后一个是判断除以二之后是否为整数
                egg = 1;
        }
        if(0<=a2 && a2<=n-x && 0<=b2 && b2<=x && !((m+y-x)%2)){
                chicken = 1;
        }
       
        if(egg && chicken){
                printf("Ambigous\n");
        }
        if(!egg && chicken){
                printf("The chicken\n");
        }
        if(egg && !chicken){
                printf("The egg\n");
        }
        if(!egg && !chicken){
                printf("The oracle is a lie\n");
        }
       
        return 0;
}
感谢感谢 , 这部分真弄得我头大{:10_254:}

傻眼貓咪 发表于 2022-1-22 18:17:02

{:5_109:}
页: [1]
查看完整版本: 鸡蛋问题