識別密碼鎖中的正確密碼10 0101

2022-06-10 18:45:14 字數 1249 閱讀 2032

要求: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 按鈕有凹 凸兩種狀態,用手按按鈕會改變其狀態。然而讓人頭疼的是,當你按乙個按鈕時,跟它相鄰的兩個按鈕狀態也會反轉。當然,如果你按的是最左或者最右邊的按鈕,該按鈕只會影響到跟它相鄰的乙個按鈕。當前密碼鎖狀態已知,需要解決的問題是,你至少需要按...