因为晚上有一个cf的比赛,而自己从来没有在cf上做过题,就找了道题熟悉一下。
题目大意:给一个数,判断是否能由1,14,144三个数连接得到。
代码如下:
1 #include <stdio.h> 2 #include <stdbool.h> 3 #include <string.h> 4 5 bool is_magic(char num[]) 6 { 7 int len = strlen(num); 8 int i = 0; 9 int level = 0; 10 while(i < len) 11 { 12 switch(level) 13 { 14 case 0: 15 if(num[i] == '1') 16 { 17 i++; 18 level++; 19 break; 20 } 21 else return false; 22 case 1: 23 if(num[i] == '4') 24 { 25 i++; 26 level++; 27 break; 28 } 29 else if(num[i] == '1') 30 { 31 level = 0; 32 break; 33 } 34 else return false; 35 case 2: 36 if(num[i] == '4') 37 { 38 i++; 39 level = 0; 40 break; 41 } 42 else if(num[i] == '1') 43 { 44 level = 0; 45 break; 46 } 47 else return false; 48 } 49 } 50 return true; 51 } 52 53 int main(void) 54 { 55 char num[12]; 56 scanf("%s", num); 57 if(is_magic(num)) printf("YES "); 58 else printf("NO "); 59 return 0; 60 }
五月份上半月在学HTML的一些东西,后来又有个编译原理的实验课,就又开始为那个课程设计忙活了将近半个月,于是,五月就这么过去了,几乎没怎么做题。到六月,先是备考六级,后来又到了期末考试,各种复习啊...22号终于考完了,可是别人还在考试啊,想找个安静的地方真的好不容易(其实也想先放松一下),现在几乎都考完了,我也该开始做题了...所以说,这道题的象征意义大于它的实际意义,^_^。