日期:2014-05-20  浏览次数:20585 次

菜鸟求此题代码。
实现一个数字加密器,加密规则是:加密结果=(整数*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);
    }
}