易課堂之算法註冊機編寫1

程序算法小結:
1.約定:用戶名:name;  用戶名長度:name_len; 固定碼table:ABCDEFGHIJKLMNOPQRSTUVWXYZ;用戶名每位的ASCII值相加結果,記爲sum1;
2.計算中間碼1:以用戶名長度值做爲循環次數
(((name[i] xor table[3i-1]+sum1*(i-1) XOR FFFFFFFF+14d+name_len*(i+3)*name[i])/10+30) xor ADAC)*(i+2)/10+30
3.計算中間碼2: sum1*name_len/64+30
4.最終中間碼:T+計算中間碼1+"-"+計算中間碼2
5.中間碼還原爲註冊碼:去掉最終中間碼前的「T」,以剩下的位數做爲循環值
(name[i] xor 2)/A +30
 
原代碼語言:
.版本 2
.程序集 窗口程序集1
.子程序 _按鈕1_被單擊
.局部變量 name, 文本型
.局部變量 name_len, 整數型
.局部變量 sum, 長整數型
.局部變量 sum1, 文本型
.局部變量 sum2, 文本型
.局部變量 total, 整數型
.局部變量 i2, 整數型
.局部變量 i3, 整數型
.局部變量 i, 整數型
.局部變量 c1, 字節型
.局部變量 c2, 字節型
.局部變量 c, 字節型
.局部變量 c3, 字節型
.局部變量 table, 文本型
.局部變量 sn, 文本型
.局部變量 sn1, 文本型
.局部變量 yushu1, 長整數型
.局部變量 yushu2, 整數型
.局部變量 zjianma2, 整數型
.局部變量 zjianma, 文本型
.局部變量 zjianma1, 文本型
.局部變量 yushuH, 文本型
.局部變量 ma1, 文本型
.局部變量 a, 長整數型
.局部變量 b, 長整數型
.局部變量 zjianma_len, 整數型
' (((name[i] xor table[3i-1]+sum1*(i-1) XOR FFFFFFFF+14d+name_len*(i+3)*name[i])/10+30) xor ADAC)*(i+2)/10+30
table = 「ABCDEFGHIJKLMNOPQRSTUVWXYZ」
name = 編輯框1.內容
name_len = 取文本長度 (name)
.若是 (name_len ≥ 1)
    .判斷循環首 (i ≤ name_len)  ' 用戶名各ASCII值之和
        c = 取代碼 (name, i)
        total = total + c
        i = i + 1
    .判斷循環尾 ()
    .判斷循環首 (i2 ≤ name_len - 1)  ' 計算中間註冊碼1
        c1 = 取代碼 (name, i2 + 1)  ' name[i]
        c2 = 取代碼 (table, 3 × i2)  ' table[3i-1]注意數組與E的區別
        a = 位異或 (c1, c2)  ' name[i] xor table[3i-1]
        b = 位異或 (total × (i2 - 1), 4294967295)  ' sum1*(i-1) XOR FFFFFFFF
        c3 = (a + b + 333 + name_len × (i2 + 3) × c1) % 10 + 48
        yushu2 = 位異或 (c3, 44460) × (i2 + 2) % 10 + 48
        yushuH = 取十六進制文本 (yushu2)
        ma1 = 取文本右邊 (yushuH, 1)
        zjianma1 = 到文本 (zjianma1) + 到文本 (ma1)  ' 65006967
        i2 = i2 + 1
    .判斷循環尾 ()
    zjianma2 = total × name_len % 100 + 48  ' 68
    zjianma = 到文本 (zjianma1) + 「-」 + 到文本 (zjianma2)  ' 中間碼
    zjianma_len = 取文本長度 (zjianma)  ' 中間碼長度
.不然
    信息框 (「請輸入用戶名」, 0, 「友好提示」)
.若是結束
.判斷循環首 (i3 < zjianma_len)
    i3 = i3 + 1
    c3 = 取代碼 (zjianma, i3)
    sum = 位異或 (c3, 32) % 10 + 48
    sum1 = 取十六進制文本 (sum)
    sum2 = 取文本右邊 (sum1, 1)
    sn = 到文本 (sn) + 到文本 (sum2)
.判斷循環尾 ()
sn1 = 「T」 + sn  ' T21662523324
編輯框2.內容 = sn1
 
相關文章
相關標籤/搜索