要求:1、這裡的(0)+表示可含有乙個或者多個0,其中密碼鎖中的正確密碼只需找出遍歷的第一次密碼,後面再出現的密碼不作數,不可重複遍歷
2、找到正確密碼後要輸出yes,空格,再對其找出的第一次正確密碼需要用括號給標註出來,
樣例:輸入:1589210101743
輸出:yes 15892(10101)743
3、輸入的字串含有非0非1外的字元,則直接輸出:invalid
4、輸入的字元均為0、1但是卻不包含正確密碼則輸出:no
思路:採用函式呼叫和自動機狀態圖的思想解題。但找出正確密碼部分的輸出需要注意,因為要用括號找出正確密碼,所以這個部分需要注意。可以採用定義兩個全域性變數,然後找出正確密碼所在位置,把它儲存在乙個陣列裡面然後用括號括出來。
這裡我的**是通過根據第一遍正確密碼恰好遍歷結束的狀態找出其下標位置,設定了乙個n=3是為了從右括號找出的位置而往前找出左括號的位置,因為密碼鎖中的規定正確密碼中的1的個數是固定,所以可以根據往前遍歷的1的次數找出左括號的位置。
1 #include2#define x0 0
3#define x1 1
4#define x2 2
5#define x3 3
6#define yes 4
7#define yes1 5
8#define invalid 6
9#define no 7
10int fa(int state,char
input);
11int
main()12
26 n=3;27
while(a[j-n]!='1'
)2831 i=0;32
if (state==0 || state==1 || state==2 || state==3 || state==7
)33 printf("
no\n");
34else
if (state==6
)35 printf("
invalid\n");
36else
if (state==4 || state==5)37
48 printf("\n"
);49}50
return0;
51}52int fa(int state, char
input)
5395
return
state;
96 }
電子密碼鎖
最近剛寫乙個電子密碼鎖的程式,使用verilog語言實現的。剛剛學這個語言,練習一下。感覺這個語言不是很難,而且通過學這個語言,感覺自己還能通過自學掌握一門語言,挺有成就感的。雖然現在只懂verilog最基本的一些語法,但是通過不斷練習我會不加深入的掌握它,也有信心自學更多的。加油!密碼輸入 刪除模...
實用密碼鎖
unsigned char num,i,j unsigned char passwordtemp 16 最大輸入16個 unsigned char inputtimes 密碼輸入錯誤次數 unsigned char passwordlength,plen 輸入密碼長度,實際密碼長度 bit flag...
特殊密碼鎖
有一種特殊的二進位制密碼鎖,由n個相連的按鈕組成 n 30 按鈕有凹 凸兩種狀態,用手按按鈕會改變其狀態。然而讓人頭疼的是,當你按乙個按鈕時,跟它相鄰的兩個按鈕狀態也會反轉。當然,如果你按的是最左或者最右邊的按鈕,該按鈕只會影響到跟它相鄰的乙個按鈕。當前密碼鎖狀態已知,需要解決的問題是,你至少需要按...