题目:一个整数A(包含负数),进行操作后(自己指定规则,)
得到一个整数C
现在拿C逆向操作,要求得到最初的运算数A,和操作类型,
比如
我拿A  移2位为操作2,移3位为操作3,移4位为操作4,(操作类型必须大于5种)得到结果C  后我再逆算 把C移2位,移3位,移4位....然后就能判断结果为 2或者,3,或者4,
以上计算并不成立..只是用于表达题目意思..大家先看题。有正确结果必定加分

解决方案 »

  1.   


    恩.现在就是说要有一个这样的算法来实现..至于你怎么知道是1*3还是6/2这个就要靠你拟定的规则来判断了,
    和我举例一样..拿C测试移2位(5种情况测试5次)若结果(比如)大于2.我就判定这个数是2 ,A=C<<2
    我这个只是举例如果是double类型的可以通过浮点来控制.
    大伙先想想.
      

  2.   

    楼主你还没明白么?
    如果只有“规则自定”这句话
    而不对这个“自定规则”加以限制
    那这本身就是个错误命题
    因为没有限制的任意规则,
    肯定是无法逆向的另外,就算是有限制的规则,
    这个命题也不完善
    提问:
    在这个A变成C的过程中
    究竟允许记录什么“东西”
    因为肯定是要靠这些“东西”来逆向的比如逆向时
    A的值?这个知不知道
    C的值?这个知不知道
    中间的操作步骤?这个知不知道你什么都没说
    我甚至可以这样理解
    A的值也不知道
    C的值也不知道
    操作步骤也不知道,
    空气到空气?
    这谁能搞定
      

  3.   


    如果是用加密的话..那就必须满足多种加密类型.(大于5种以上)
    然后结果可以根据加密类型来判断原来的数字a
    但是话又说回来..我要求拿a操作后类型还是数字..?加密后是否可以满足.?是否还可以保存在C变量里面..?看来问题还是我没有把题目描述清楚把..
    我再举例.String a="xxx";
    String k="&"(假设是制定的规则为a后面追加&符号)
    String b=1,(任意5种,2,3,4,5); a=a+k+b;//操作后结果还保存在a中。。String c=a;拿结果c分析
    我可以通过分割c得到原来的a
    我可有通过分割c得到原来的b;现在就是问题就是把类型转换成int 类型
    注意。把a进行处理后的结果和a的类型保持一致,也就是题目所说的int、类型