医生排班

2018-11-26  本文已影响0人  唯一的one

医院内科有A,B,C,D,E,F,G共7位医生,没人在一周内要值一次夜班,排班的要求是:
(1)A医生值日比C医生晚1天
(2)D医生值日比E医生晚2天
(3)B医生值日比G医生早3天
(4)F医生值日在B医生和C医生值班日之间,且在周四
请编写程序,输出每位医生的值班日。

第一种方法:


image.png
image.png
 int a, b, c, d, e, f = 4, g;
            for (a = 1; a <= 7; a++)
                for (b = 1; b <= 7; b++)
                    if (a == b) continue;
                    else
                        for (c = 1; c <= 7; c++)
                            if (a != c + 1 || a == c || b == c) continue;
                            else
                                for (d = 1; d <= 7; d++)
                                    if (a == d || b == d || c == d) continue;
                                    else
                                        for (e = 1; e <= 7; e++)
                                            if (d != e + 2 || a == e || b == e || c == e || d == e) continue;
                                            else
                                                for (g = 1; g <= 7; g++)
                                                {
                                                    if ((a == c + 1) && (d == e + 2) && (b == g - 3) && (f > b && f < c)
                                                        && (a != f) && (b != f) && (c != f) && (d != f) && (e != f) && (g != f)
                                                        && (a != g) && (b != g) && (c != g) && (d != g) && (e != g))
                                                    {
                                                        Console.WriteLine(a);
                                                        Console.WriteLine(b);
                                                        Console.WriteLine(c);
                                                        Console.WriteLine(d);
                                                        Console.WriteLine(e);
                                                        Console.WriteLine(f);
                                                        Console.WriteLine(g);
                                                    }
                                                }

第二种方法:


image.png
int a, b, c, d, e, f = 4, g;
            for (a = 0; a < 8; a++)
            {
                c = a - 1;
                b = 8 - c;
                g = b + 3;
                for (d = 0; d < 8; d++)
                {
                    e = d - 2;
                    if (b > 0 && c > 0 && e > 0 && g > 0 && b < 8 && c < 8 && e < 8 && g < 8)
                    {
                        if (a != b && a != c && a != d && a != e && a != f && a != g
                            && b != c && b != d && b != e && b != f && b != g
                            && c != d && c != e && c != f && c != g
                            && d != e && d != f && d != g
                            && e != f && e != g
                            && f != g)
                        {
                            Console.WriteLine(a);
                            Console.WriteLine(b);
                            Console.WriteLine(c);
                            Console.WriteLine(d);
                            Console.WriteLine(e);
                            Console.WriteLine(f);
                            Console.WriteLine(g);
                        }
                    }
                }
            }
上一篇 下一篇

猜你喜欢

热点阅读