您的位置:首页 > 其它

PTA乙级 1048 数字加密 (20 分)

2020-02-06 13:53 92 查看

数字加密 PTA乙级 T1048

题目要求:
PTA乙级 T1048 题目要求

代码

import java.util.*;
import java.math.*;

public class T1048 {

public static void main(String[] args) {
int length_a, length_b;
String str_a, str_b;
Scanner in = new Scanner(System.in);
str_a = in.next();//用于接收输入的字符串
str_b = in.next();//用于接收输入的字符串
length_a = str_a.length();
length_b = str_b.length();

char[] char_a = new char[length_a];//用于存储分割字符串后的字符
char[] char_b = new char[length_b];//用于存储分割字符串后的字符
for(int i = 0; i < length_a; i++) {
char_a[length_a - i - 1] = str_a.charAt(i);
}
for(int i = 0; i < length_b; i++) {
char_b[length_b - i - 1] = str_b.charAt(i);
}

for(int i = (int) (Math.abs((double)length_a + length_b) / 2 + Math.abs((double)length_a - length_b) / 2 - 1);
i > (int)(Math.abs((double)length_a + length_b) / 2 - Math.abs((double)length_a - length_b) / 2 - 1);
i--) {
if(length_a > length_b) {
if(i % 2 == 0) {
System.out.print(Integer.parseInt(String.valueOf(char_a[i])));
}
else System.out.print(10 - Integer.parseInt(String.valueOf(char_a[i])));
}
else if(length_b > length_a) {
System.out.print(char_b[i]);
}
else break;
}

for(int i = (int) (Math.abs((double)length_a + length_b) / 2 - Math.abs((double)length_a - length_b) / 2) - 1;
i >= 0; i--) {
int num_char_a = Integer.parseInt(String.valueOf(char_a[i]));
int num_char_b = Integer.parseInt(String.valueOf(char_b[i]));
if(i % 2 == 0) {
if(num_char_a + num_char_b == 10) System.out.print('J');
else if(num_char_a + num_char_b == 11) System.out.print('Q');
else if(num_char_a + num_char_b == 12) System.out.print('K');
else System.out.print((num_char_a + num_char_b) % 13);
}
if(i % 2 == 1) {
if(num_char_b - num_char_a >= 0) System.out.print(num_char_b - num_char_a);
else System.out.print(num_char_b - num_char_a + 10);
}
}
}
}

注意的是,
1、char类型强制转换为int类型的两种方式
a.使用(int)对char类型进行强制转换
这种情况转换得到对int值是对应char值的ASCII码
b.先把char类型转换为String类型,然后使用Integer.parseInt方法进行强制转换。
这种方法能够得到char表示数字的值

2、出现BUG的重要监测点
一般使用打印的方法将变量值打印出来,用来监控变量运算是否出现问题。
a.在字符串进行切割并且赋值到字符变量数组中
循环检查每个字符变量是否正确
b.在循环内部字符转化为整数的时候
检查每个字符是否正确转化为字符表达的整数
c.在输出的时候检测变量计算是否出错

  • 点赞
  • 收藏
  • 分享
  • 文章举报
喝汤的炀 发布了4 篇原创文章 · 获赞 0 · 访问量 74 私信 关注
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: