題目:某個公司採用公用電話傳遞資料,資料是四位的整數,在傳遞過程中是加密的,加密規則如下:每位數字都加上5,然後用和除以10的餘數代替該數字,再將第一位和第四位交換,第二位和第三位交換。
阿新 • • 發佈:2019-02-07
題目:某個公司採用公用電話傳遞資料,資料是四位的整數,在傳遞過程中是加密的,
加密規則如下:每位數字都加上5,然後用和除以10的餘數代替該數字,再將第一位和第四位交換,第二位和第三位交換。
package com.ftl; import java.util.Scanner; public class Demo6 { //題目:某個公司採用公用電話傳遞資料,資料是四位的整數,在傳遞過程中是加密的, //加密規則如下:每位數字都加上5,然後用和除以10的餘數代替該數字,再將第一位和第四位交換,第二位和第三位交換。 //通過程式進行加密和解密 public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.println("請輸入一個四位數:"); int x = scanner.nextInt(); Demo6 demo6 =new Demo6(); System.out.println("加密之後的數字是:"+demo6.jiami(x)); System.out.println("解密之後的數字是:"+demo6.jiemi(demo6.jiami(x))); } //加密過程 public int jiami(int x) { //假設該四位數是abcd,將這個四位數進行拆分 int a=x/1000; int b=x%1000/100; int c=x%100/10; int d=x%10; //每位數字都加上5,然後用和除以10的餘數代替該數字 a=(a+5)%10; b=(b+5)%10; c=(c+5)%10; d=(d+5)%10; x=1000*d+100*c+10*b+a; return x; } //解密過程 public int jiemi(int x) { //將加密後的數進行拆分 int a=x/1000; int b=x%1000/100; int c=x%100/10; int d=x%10; //每位數字都加上5,然後用和除以10的餘數代替該數字 a=(a+5)%10; b=(b+5)%10; c=(c+5)%10; d=(d+5)%10; x=1000*d+100*c+10*b+a; return x; } //寫完程式發現,加密過程和解密過程是一樣的 }
控制檯列印結果: