打印

上一题啊:A/(b*C)与A/B/c的问题

[复制链接]
2155|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
谈的元|  楼主 | 2009-6-20 20:59 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
有整数A,B,C;条件A大于B,C的乘积。


如果先算B*C,然后用C除以积。得到一个商与余数,假设商为S1;

如果先算A除以B,得到商SS1与余数,再用SS1除以C,得到商为S2,


请问S1等于S2吗? 如果等 ,请说明S1与S2相等的理由。

不等请举一个例子

谢谢
沙发
vrgood| | 2009-6-20 22:52 | 只看该作者

相等的

相等的
根据问题有:
A=S1*(B*C)+T   T<B*C

A=SS1*B+T1     T1<B
SS1=S2*C+T2    T2<C

则A=(S2*C+T2)*B+T1=S2*B*C+T2*B+T1
而T2*B+T1 <= (C-1)*B+B-1=B*C-1 <B*C

所以,是S1=S2

使用特权

评论回复
板凳
谈的元|  楼主 | 2009-6-21 08:52 | 只看该作者

谢谢

感谢 very  good

使用特权

评论回复
地板
iC921| | 2009-6-21 09:19 | 只看该作者

这个好象只是运算法则的问题吧?

我曾经被初中数学老师“暗算”过一次

使用特权

评论回复
5
e掾木| | 2009-6-21 12:04 | 只看该作者

在电工论坛里讨论就可能不等的了!

  unsigned long data_A;
  unsigned int data_B,data_C;
  unsigned int rsltA,rsltB;

  rsltA = dataA/(data_B * data_C);
  rsltB = dataA/data_B;
  rsltB = dataB/data_C;
  
  if(rsltA == rsltB)
      data_B * data_C < 1 << (8 * sizeof(unsigned int));
 

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

98

主题

3872

帖子

6

粉丝