顺子日期
题目
本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。
小明特别喜欢顺子。顺子指的就是连续的三个数字:123、456 等。顺子日期指的就是在日期的 yyyymmdd 表示法中,存在任意连续的三位数是一个顺子的日期。
例如 20220123 就是一个顺子日期,因为它出现了一个顺子:123; 而 20221023 则不是一个顺子日期,它一个顺子也没有。
小明想知道在整个 2022 年份中,一共有多少个顺子日期?
题目要求
1.顺子日期指的就是在日期的 yyyymmdd 表示法中,存在任意连续的三位数是一个顺子的日期
2.题目要求年份为2022年
思路分析
1.2022年为平年,可以使用for循环,将2022年日期进行日期判断
2.进行日期判断后再进行顺子日期判断,可以采用数组的形式提取日期的数位,再判断日期
代码
#include int shunzi( int n) //判断是否存在顺子 { int m=n; int i=0,j; int a[8]; int x=0; while (m!=0) //拆分数位 { a[i]=m%10; m/=10; i++; } //此时a[i]为原数字的逆序数 for (j=0;j<+7;j++) { if (a[j+1]-a[j]==-1&&a[j+2]-a[j+1]==-1) { return 1; x=1; break ; } else { continue ; } } if (x==0) //没有顺子数 { return 0; } } int main() { int i; int day,month,year; int days[13]={0,31,28,31,30,31,30,31,31,30,31,30,31}; int count=0; for (i=20220101;i<=20221231;i++) { year=i/10000; month=i%10000/100; day=i%100; if (day<=days[month]) //判断日期合法性 { if (shunzi(i)==1) { count++; } } } printf( "%d" ,count); return 0; }