[C语言] 非常基础的实践问题, 考验D版真电工

  • w
    wq_xenocide
    写个分数类呗
  • L
    LittleBlue
    回复2#wq_xenocide

    嗯,限定C语言,不能修改入参
  • g
    godgunhand
    都等于0? iOS fly ~
  • j
    jckimi
    卧槽,我居然连题目都看不懂
  • l
    lance6716
    必须乘除吗,能不能加减
  • b
    beiwei
    就是如何处理计算误差
  • w
    wq_xenocide
    浮点数精度丢失问题这样应该是无解的。
  • x
    x8blaze
    A'是什么,不符合c语法,不能写个C么…
  • l
    lifanxi
    B的值要求等于t*x/y取整吗?如果要求好像无解,因为非整除情况下,丢弃了一些信息,后面不可能还原了。
  • h
    howlet
    这不就是加密解密吗
  • o
    ouyuu
    整数除法返回整数,绝大部分情况都存在浮点的取整。取整后逆运算不可能返回原先的数值。 iOS fly ~
  • t
    tyfsam
    直接return t不就完了吗 iOS fly ~
  • b
    beiwei
    你这样不行,convert里面有运算,这样把运算全部忽略了
  • w
    wq_xenocide
    LZ应该就是这意思,其实需要的不过是一个可逆运算的实现函数
  • L
    LittleBlue
    回复14#zeroxia

    我就知道有人要钻空子,哈哈
  • z
    zeroxia
    所以你的语文还是体育老师教的,一楼的排版不说了,要求都说不清楚么。
  • L
    LittleBlue
    回复10#beiwei

    写一个试试看?
  • k
    keetian
    回复16#beiwei

    Return t-x+y;
  • h
    happyd8699
    用异或,应该是可逆的,函数体:
    1. return t ^ x ^ y ;
    复制代码
  • L
    LittleBlue
    回复19#zeroxia

    题目虽然不严谨,但你明明知道要求是啥,非要钻空子。 只防君子就好
  • z
    zeroxia
    回复23#LittleBlue
    我真不知道,我的答案哪里不符合要求。
  • L
    LittleBlue
    回复24#zeroxia
    好吧,你的解答非常完美,谢谢
  • 屋大维
    22楼给出答案了。

    楼主题目都没说清楚 iOS fly ~
  • a
    alvise
    可以直接用异或处理,要不然用set,。。
  • L
    LittleBlue
    回复26#屋大维

    很多人说题目不严谨,稍微改了下,看看可行否?
  • 碧的绿
    我先给语文老师打个电话
  • w
    wangday
    回复31#LittleBlue

    大体就这么个思路,遛娃空隙用手机打的,见笑了,N哪里改了
  • L
    LittleBlue
    回复32#wangday

    这t*x会溢出的,后面取模也有问题。
    你是唯一认真回答的,值得鼓励,不过离好答案还差很远
  • 猫了个咪的
    你能把题目说的更清楚一点吗?
  • z
    zhdphao
    既然函数是取整,那么函数返回结果具有唯一性。

    后面逆函数也具有结果唯一性。就不能保证能逆回去啊。
  • l
    lifanxi
    用全局变量或者静态变量来保存余数解决精度丢失问题的做法肯定能实现,但是写出这样的函数来的话,实在是毫无可读性。而且要解决多线程下的正确性问题还得付出更多的精力。
    ====
    啥?题目改了?(如无法保证完全一样,请尽量接近)不要求A和A’一样了?那就有别的做法了。
  • L
    LittleBlue
    回复34#猫了个咪的

    哪里不清楚,这是个工程问题,需要合理解决问题,不需要较真
  • z
    zhdphao
    回复37#LittleBlue


    老实说题目不明觉厉,语体教。我当年考试,最怕看到这类题目。工作的第二家外资公司面试,C拿到了该公司有史以来最高分。

    还不如生动的把工程实际问题摊开来,有个理解的语境。


    如果要考虑溢出和余数,那像楼上有人说的,搞个全局变量就是典型的Ugly代码。
  • w
    wwwEagle
    回复1#LittleBlue


    多大个事,自己定义个数据结构用比如byte array存任意长度数值,重载下乘法除法就是了。本质上和如何输出2^65是一样的。
  • L
    LittleBlue
    回复38#zhdphao

    没人说一定要用全局变量啊,虽然也是不能否认是个解法
  • L
    LittleBlue
    回复39#wwwEagle

    c语言,不是cpp
  • w
    wwwEagle
    回复41#LittleBlue


    那就不用算符重载呗...反正你这个接口也不需要泛化。其实就是前面几层说的,表示成分数。
  • h
    happyd8699
    其实就是如何用最有效率的算法来处理这个乘法溢出和除法精度损失
    最笨的办法就是用连加来实现乘法,用单独一个变量保存溢出的进位
    用连减来模拟除法,保存进位的变量用于借位
  • w
    wrs
    这类题目科学计算的码农用得多,D版电工平时还真是大概率用不上。
  • m
    mewolf
    浮点精度我不会解 iPhone5 fly
  • l
    longwayhome
    回复1#LittleBlue
    哈哈哈 iOS fly ~