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.在输出的时候检测变量计算是否出错
- 点赞
- 收藏
- 分享
- 文章举报
相关文章推荐
- 1048. 数字加密(20) PAT乙级真题
- PAT乙级.1048. 数字加密(20)
- PAT 乙级 1048. 数字加密(20) Java版
- pat 乙级 1048. 数字加密(20)
- 1048. 数字加密(20)-浙大PAT乙级真题java实现
- 1048. 数字加密(20)-浙大PAT乙级真题
- 1048. 数字加密(20)PAT乙级
- PAT乙级 1048. 数字加密(20)
- PAT乙级—1048. 数字加密(20)-native
- 乙级 PAT 1048. 数字加密(20)
- PAT 乙级 1048. 数字加密(20)
- PAT 乙级 1048 数字加密 (20 分)
- pat乙级1048. 数字加密(20)
- PAT乙级1048(C语言)-数字加密(20)
- PAT乙级 1048. 数字加密(20)
- [PAT乙级]1048. 数字加密(20)
- PAT-乙级-1048. 数字加密(20)
- PAT乙级 1048. 数字加密(20)
- PAT 乙级 1048. 数字加密(20)
- PAT乙级1048. 数字加密(20)