# C sharp_study_ZZ **Repository Path**: YeTIngXY/c-sharp_study_-zz ## Basic Information - **Project Name**: C sharp_study_ZZ - **Description**: 周正的C#代码学习的仓库 - **Primary Language**: C# - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2020-09-07 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 1.输入日期计算到现在的天数 > 代码展示 ``` Console.WriteLine("请输入年/月/日:"); string str = Console.ReadLine(); //拆分字符串 char[] separtor = { '/' };//数组定义形式 str.Split(separtor);//Split方法的用法 String[] strArr = str.Split(separtor); int month = int.Parse(strArr[1]);//转化 int sum = 0; int year = int.Parse(strArr[0]); int day = int.Parse(strArr[2]); switch (month) { case 1: sum = 0+day; break; case 2: sum = 31+day; //判断闰年; if (year % 400 == 0 || (year % 4 == 0 && year % 100 != 0)) { sum += 1; Console.WriteLine("是闰年"); } else { Console.WriteLine("不是闰年"); } break; case 3: sum = 59 + day; break; case 4: sum = 90 + day; break; case 5: sum = 120 + day; break; case 6: sum = 151 + day; break; case 7: sum = 181 + day; break; case 8: sum = 212 + day; break; case 9: sum = 243 + day; break; case 10: sum = 273 + day; break; case 11: sum = 304 + day; break; case 12: sum = 334 + day; break; } //计算 Console.WriteLine("这是一年中的第{0}天", sum); ``` > 运行截图 > ![Day](Pictures/day.png) # 2.穷举九宫格 > 运行代码 ``` static void Main(string[] args) { Show(); GetAnswer(0); Console.ReadLine(); } static int[,] pu = new int[9, 9] { {0,0,0,7,2,8,0,0,0}, {0,9,0,0,5,1,6,0,0}, {0,0,0,0,6,0,0,8,2}, {3,0,0,8,0,2,7,0,4}, {1,7,4,0,3,0,0,2,0}, {2,8,0,5,0,0,0,3,0}, {0,1,0,3,0,0,2,0,0}, {0,0,7,0,4,6,0,0,5}, {0,0,6,1,0,0,0,4,9} }; static bool IsValid(int i, int j) { //验证函数 int n = pu[i, j]; int[] query = new int[9] { 0, 0, 0, 3, 3, 3, 6, 6, 6 }; int t, u; //每一行每一列是否重复 for (t = 0; t < 9; t++) { if ((t != i && pu[t, j] == n) || (t != j && pu[i, t] == n)) return false; } //每个九宫格是否重复 for (t = query[i]; t < query[i] + 3; t++) { for (u = query[j]; u < query[j] + 3; u++) { if ((t != i || u != j) && pu[t, u] == n) return false; } } return true; } static void Show() { //显示函数 for (var i = 0; i < 9; i++) { for (var j = 0; j < 9; j++) { Console.Write(pu[i, j] + " "); } Console.WriteLine(); } Console.WriteLine("----------------------------------------------"); } static void GetAnswer(int n) { //求解函数 if (n == 81) {//是否已经是最后一个格子 Show(); return; } int i = n / 9, j = n % 9; if (pu[i, j] != 0) {//如果当前格子不需要填数字,就跳到下一个格子 GetAnswer(n + 1); return; } for (int k = 0; k < 9; k++) { pu[i, j]++;//对于九宫格数独解法,将定位到的格子数字加一,检测,一行或一列或一3*3格检测无解就回到开始 if (IsValid(i, j)) GetAnswer(n + 1);//验证通过,就继续下一个 } pu[i, j] = 0; //如果上面的单元无解,还原,就回溯 return; } ``` > 运行截图 > ![九宫格](Pictures/九宫格.png)