【問題E13】:授權碼檢查             [回前頁]

【同問題C14】

Nansoft資訊軟體公司研發出一套商用軟體,準備於市面上販售,但為恐遭到未經授權之不合法使用,因此在安裝軟體時,需要使用者輸入授權碼。試寫一個程式,其功能可以檢核此授權碼的正確性。

【規則敘述】

此授權碼由十個位數組成,每一位數可以為0~9的任何一個數字,其判斷方法如下:

首先,將此碼逐次的累加,使得第二位數成為第一位數到第二位數的和,第三位數為第一位數到第三位釋候累加和…第十位數為第一位數到第十位數的累加和;

進行完第一次的累加和後,接著再將所得到的十個數字,第十個數字減掉第一個數字,第九個數字減掉第二個數字…以此類推,得到五組數字,將此五組數字由小到大排列後成為一個新的數列。

此新數列的後三碼為識別碼,必須可為11整除,方為正確的授權碼,故在螢幕上列印出"此為合法之授權碼",反之則印出"此為不合法之授權碼",若授權碼格式錯誤則顯示"授權碼格式錯誤"

 

【輸出範例一】

輸入格式:

請輸入授權碼:9476282354

 

輸出格式:

此為合法之授權碼

 

【輸出範例二】

輸入格式:

請輸入授權碼:A23fsed

 

輸出格式:

授權碼格式錯誤

 

[提示]

輸入授權碼為9476282354

第一次運算後得到數列9 13 20 26 28 36 38 41 46 50

第二次運算後得到數列41 33 21 12 8

排序後得到數列引812213341

 

取得排序後數列後3碼341為識別碼。經由計算可知識別碼341乃是11之倍數,為一合法之授權碼,故在螢幕上列印出"此為合法之授權碼"。