蓝桥试题 算法提高 数据加密 JAVA

问题描述
  某个公司采用公用电话传递数据,数据是四位的整数,在传递过程中是加密的,加密规则如下:每位数字都加上5,然后用和除以10的余数代替该数字,再将第一位和第四位交换,第二位和第三位交换 。 写一个函数实现这个算法。
输入格式
  输入一个四位整数。
输出格式
  输出四位整数
样例输入
一个满足题目要求的输入范例。
2348
样例输出
与上面的样例输入对应的输出。
例:
3987

思路:用String类型给它每一位替换出来+5%10,之后再用个String类型的temp替换数字,交换输出即可。

import java.util.Scanner;

public class Main {

	static String temp = "";    // 全局变量,空字符串

	public static void main(String[] args) {
		Scanner scanner = new Scanner(System.in);
		String n = scanner.nextLine();
		for (int i = 0; i < n.length(); i++) {
		    // 强制转换int用来+5%10 (强转String类型,取n的每一位) 
			int m = ((Integer.parseInt(String.valueOf(n.charAt(i)))) + 5) % 10;
			temp += m;   // m求得的一个整数,下面还要做数组交换,所以得用Sting类型
		}
		String s1 = String.valueOf(temp.charAt(3));  // 第一位和第四位交换
		String s2 = String.valueOf(temp.charAt(2));  // 第二位和第三位交换
		String s3 = String.valueOf(temp.charAt(1));  // 第三位和第二位交换
		String s4 = String.valueOf(temp.charAt(0));  // 第四位和第位一交换
		System.out.println(s1 + s2 + s3 + s4);       // 相加输出即可
	}
}

小剧场:温柔是因为喜欢。

发布了161 篇原创文章 · 获赞 120 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/weixin_43771695/article/details/104963409