实现一个数字加密器,加密规则是:加密结果=(整数*10+5)/2+3.14159,加密结果仍为一个整数。
------解决方案--------------------
实现了一下,供楼主参考
- Java code
public class EncodingTest{ public static void main(String[] args) { int original = 125; int encrypted = Encoder.encode(original); System.out.println(original + ":" + Encoder.decode(encrypted)); } }class Encoder{ public static int encode(int original) { /* * 结果进行类型转换的时候,相当于舍去小数部分0.64159(忽略精度损失), * 其中,0.5是5除以2的时候贡献出来的,剩下是3.14159贡献出来的 */ return (int)((original * 10 + 5) / 2 + 3.14159); } public static int decode(int encrypted) { /* * 加上0.0001是考虑到有可能发生精度损失 */ return (int)(((encrypted + 0.64159 -3.14159 + 0.0001) * 2 - 5) / 10); }}