医生值班

#include <iostream>
using namespace std;
int main()
{
	enum weekday{Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday};

	int a,b,c,d,e,f,g,i;
	char ch='A';
	int day[7];

	f=Thursday;
	for(a=Sunday;a<=Saturday;a++)
       if(a!=f)
	  for(b=Sunday;b<=Saturday;b++)
		  if(b!=f&&b!=a&&f>b)
		for(c=Sunday;c<=Saturday;c++)
			if(c!=f&&c!=a&&c!=b&&(c+1)%7==a&&f<c)
           for(d=Sunday;d<=Saturday;d++)
             if(d!=f&&d!=a&&d!=b&&d!=c)
          for(e=Sunday;e<=Saturday;e++)
           if(e!=f&&e!=a&&e!=b&&e!=c&&(e+2)%7==d&&e!=d)
              for(g=Sunday;g<=Saturday;g++)
               if(g!=f&&g!=a&&g!=b&&g!=c&&g!=d&&g!=e&&(g-3)%7==b)
				   for(i=0;i<7;i++)
				   {	day[0]=a;day[1]=b;day[2]=c;
	         day[3]=d;day[4]=e;day[5]=f;day[6]=g;
					   cout<<"Doctor "<<(char)(ch+i)<<" is on duty ";
					   switch((enum weekday)(day[i]))
					   {
					   case Sunday:cout<<"Sunday."<<endl;break;
					   case Monday:cout<<"Monday."<<endl;break;
					   case Tuesday:cout<<"Tuesday."<<endl;break;
					   case Wednesday:cout<<"Wednesday."<<endl;break;
					   case Thursday:cout<<"Thursday."<<endl;break;
					   case Friday:cout<<"Friday."<<endl;break;
					   case Saturday:cout<<"Saturday."<<endl;
					   }
				   }
				   return 0;
}


Description
医院内科有A,B,C,D,E,F,G,H共七位医生,每人在一周内要值一次夜班,排班的要求是:
(1) A医生值班日比C医生晚1天
(2) D医生值班日比E医生晚2天
(3) B医生值班日比G医生早3天
(4) F医生的值班日在B医生和C医生的值班日之间,且是星期四
请编写程序,输出每位医生的值班日。值班日以Sunday, Monday ,Tuesday, Wednesday, Thurday, Friday, Saturday分别表示星期日到星期六。

Input

Output
每位医生的值班日

Sample Input
 

Sample Output
Doctor A is on duty Sunday.
Doctor B is on duty Tuesday.
Doctor C is on duty Saturday.
Doctor D is on duty Wednesday.
Doctor E is on duty Monday.
Doctor F is on duty Thursday.
Doctor G is on duty Friday.

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值