7-6 黑色13号 (80分)

7-6 黑色13号 (80分)
13 号 让人觉得十分不爽 是一个不同寻常的日子。

现在你来计算下未来 n 年里 13 号落在周一到周日的天数。

假定当前日期是 1900 年 1 月 1 日,星期一。

输入格式:
在一行里给出一个n(1≤n≤500)。

输出格式:
七个整数,第一个代表落在周六的天数,第二个代表落在周天的天数,第三个代表落在周一的天数。。。。。。

行首尾不要输出多余的空格。
输入样例:
20

输出样例:
在这里给出相应的输出。例如:

36 33 34 33 35 35 34

大佬指点

#include <stdio.h>
int main()
{
	int i,n,x=3;//x初值为3 ,使12月到1月满足13号为为周六 
	int a[7]={0};//a[0]代表周日 
	scanf("%d",&n); 
	for(i=0;i<n;i++)//循环n年 
	{
		x+=3;//1 3 5 7 8 10 12月13号到下月13号%7余3 
		if(x>=7)//一周满了到下一周  
		x=x-7;
		a[x]++;//12到1月
		
		x+=3;
		if(x>=7)
		x=x-7;
		a[x]++;// 1月到2月 
	
		if((1900+i)%4==0&&(1900+i)%100!=0||(1900+i)%400==0)//闰年特殊 
		x+=1;
		else 
		x=x;//不闰年 
		if(x>=7)
		x=x-7;
		a[x]++;//2月到3月
		
		x+=3;
		if(x>=7)
		x=x-7;
		a[x]++;//3到4月 
		
		x+=2;//其余月份余2天 
		if(x>=7)
		x=x-7;
		a[x]++;//4到5 
		
		x+=3;
		if(x>=7)
		x=x-7;
		a[x]++;//5到6
		
		x+=2;
		if(x>=7)
		x=x-7;
		a[x]++;//6到7 
		
		x+=3;
		if(x>=7)
		x=x-7;
		a[x]++;//7到8 
		
		x+=3;
		if(x>=7)
		x=x-7;
		a[x]++;//8到9 
		
		x+=2;
		if(x>=7)
		x=x-7;
		a[x]++;//9到10
		 
		x+=3;
		if(x>=7)
		x=x-7;
		a[x]++;//10到11  
		
		x+=2;
		if(x>=7)
		x=x-7;
		a[x]++;//11到12 
	}
	printf("%d %d %d %d %d %d %d",a[6],a[0],a[1],a[2],a[3],a[4],a[5]);
    return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值