小测试 小测试(转自c/c++)

Bowdom 2002-01-06 07:28:59
已知: DWORD a, DWORD b, a > b, b 不能被 a 整除 ( 即 a/b 不是整数 )
求: 求与 b 最接近的一个DWORD c , 使得 a > c, b > c 且 c 能被 a 整除 ( 不能用循环和递归, 答对者有奖, 提供三天的免费果汁, 有鲜橙啦 菠萝啦 荔枝啦 呵呵 )
...全文
137 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
晨星 2002-01-08
  • 打赏
  • 举报
回复
不明白,为什么
if (dwC & 0x00000001)//保证c 能被 a 整除
return 1;
???

Bowdom 2002-01-08
  • 打赏
  • 举报
回复
有收获 多谢各位了!
Bowdom 2002-01-07
  • 打赏
  • 举报
回复
up! up! up! go! go! go! 卡芒 卡芒 给我感觉...
jyc_nj 2002-01-07
  • 打赏
  • 举报
回复
up
srg777 2002-01-07
  • 打赏
  • 举报
回复
************************************

我的主页终于密码找到了,快到我的主页下载--源代码

http://webdiy.org/srg/


************************************
tiger_wkh52741 2002-01-07
  • 打赏
  • 举报
回复
bskay果然是高手啊,我学习到了啊!!!1
bskay 2002-01-07
  • 打赏
  • 举报
回复
是这样的既然是DWORD的,就是32位了

那么就让a去移位吧(如果最右位是0才移,最多32次)然后和b比较啊

DWROD GetSome(DWORD dwA, DWORD dwB)
{
DWORD dwC = dwA;
if (dwC & 0x00000001)//保证c 能被 a 整除
return 1;

...//32次
dwC = dwC>>1;
if (dwC < dwB)//保证b > c
return dwC;
...

return 1;
}
Bowdom 2002-01-07
  • 打赏
  • 举报
回复
原来的问题是这样的:
已知 a = 24(小时)*60(分)*60(秒), 从外部传来一个时间值 b (秒),
b < a, 其实 a/b 是不是整数也不知道, 现在就是要找一个和 b 最接近的
整数 c , 使得 c < a 且 a/c 是整数.
用循环很简单, 我是想有没有一个式子直接就能算出结果.
bskay 2002-01-07
  • 打赏
  • 举报
回复

c=(a/b)*b
Bowdom 2002-01-07
  • 打赏
  • 举报
回复
是有这个可能
晨星 2002-01-07
  • 打赏
  • 举报
回复
楼上的对,当a=质数,b=1。
jijian91 2002-01-07
  • 打赏
  • 举报
回复
如果a值是不确定的话,本题可能无解(当a是质数)
sharp_shooter 2002-01-06
  • 打赏
  • 举报
回复
: Kusk(Kusk) 
不能耍流氓
cnss 2002-01-06
  • 打赏
  • 举报
回复
做个标记
Kusk 2002-01-06
  • 打赏
  • 举报
回复
不用循环和递归,我用GOTO不行喽!

69,373

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧