1. 程式人生 > >題目:某個公司採用公用電話傳遞資料,資料是四位的整數,在傳遞過程中是加密的,加密規則如下:每位數字都加上5,然後用和除以10的餘數代替該數字,再將第一位和第四位交換,第二位和第三位交換。

題目:某個公司採用公用電話傳遞資料,資料是四位的整數,在傳遞過程中是加密的,加密規則如下:每位數字都加上5,然後用和除以10的餘數代替該數字,再將第一位和第四位交換,第二位和第三位交換。

題目:某個公司採用公用電話傳遞資料,資料是四位的整數,在傳遞過程中是加密的,
 加密規則如下:每位數字都加上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;
	}
	
	
	//寫完程式發現,加密過程和解密過程是一樣的

}

控制檯列印結果: