蓝桥杯冲刺(1)

1.蔡基姆拉尔森计算公式

又称蔡氏公式,计算星期几的方法

蔡基姆拉尔森计算公式(Zeller's congruence),又称蔡氏公式,是一种计算星期几的方法,公式如下:

蔡基姆拉尔森计算公式(Zeller's congruence),又称蔡氏公式,是一种计算星期几的方法,公式如下:

[w = (d + 2m + 3(m + 1) \ 5 + y + y \4 - y \100 + y \400) \bmod 7]

其中:

  • (w)表示星期几((0)代表星期日,(1)代表星期一,以此类推);
  • (d)表示日期;
  • (m)表示月份((3)代表三月,(4)代表四月,以此类推,把一月和二月看成上一年的(13)月和(14)月);
  • (y)表示年份(如果是一月或二月,则是上一年的年份)。

2.DFS深度优先运算

#include <iostream>
#include <vector>
using namespace std;

void dfs(vector<bool> &arr1,vector<int> &arr2,int n,int x){//假设输入了n,相当于arr2的作用是提前设定了n个位置,每个位置都会有一个对应的数字(1-n中的任意一个),用arr1布尔数组的意义是判断它是否被使用过,使用过的函数是不能再次被使用的
	if(x>n){
		for(int i=1;i<=n;i++){
			cout<<arr2[i]<<" ";
		}
		cout<<endl;
		return ;//因为用的是void函数,终止只能用return ;而不是return 0;(因为不能有返回值)
	}
	
	for(int i=1;i<=n;i++){
		if(!arr1[i]){
			arr1[i]=true;//代表这个时候i已经被使用了,
			arr2[x]=i;
			dfs(arr1,arr2,n,x+1);//不断地累计,不断的累计,一直到x>n终止,输出第一个排序
			arr1[i]=false;//把这个数字恢复到初始状态,下一行排序这个数字就能再次使用了
		}
	}
}
int main(){
	int n;
	cin>>n; 
	vector<bool> arr1(n+1);
	vector<int> arr2(n+1);
	for(int i=1;i<=n;i++){
	arr1[i]=false;
	}
	dfs(arr1,arr2,n,1);
	return 0;
}

全部评论

相关推荐

投递思特奇等公司10个岗位 >
点赞 评论 收藏
分享
03-02 15:43
门头沟学院 Java
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务