1. 程式人生 > >取模(取餘)運算小結規律——用於數字加密以及破譯

取模(取餘)運算小結規律——用於數字加密以及破譯

切入點來源於課堂測驗習題。

輸入一個四位數,該數是被加密後的結果。加密方法是:原數每一位數字加9,除以10取餘,再將第一位和第三位,第二位和第四位數字交換,組成加密後的新數字,求出原來的四位數。

輸入:3421

輸出:3245

核心程式碼:

a = num / 1000;//取千位數
b = (num/100) %10;//取百位數
c = (num/10) % 10;//取十位數
d = num % 10;//取個位數
//交換數字
temp=c;
c=a;
a=temp;
temp=d;
d=b;
b=temp;
//求原數各位
a=(a+1)%10;
b=(b+1)%10;
c=(c+1)%10;
d=(d+1)%10;

  通過本例拓展研究發現,設通式為(x+m)%n=y   

       注:由於x-m數字操作範圍較小,在此不做研究

x:原數某一位上數字

m:對某一數字變換

n:取模的除數

y:結果

下面分別就①m<n②m>n討論

①當m<n時,x=[y+(n-m)]%n;

②當m>n時,x=[y-(m-n)]%n;