LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
12
返回列表 发新帖
楼主: biosxjj

今天去笔试 忘记了 2圆位置关系还有内含和内切 .做错了5555555555

[复制链接]
 楼主| 发表于 2007-3-26 13:48:47 | 显示全部楼层
哦  我懂了 ...谢谢多多~~~
回复 支持 反对

使用道具 举报

发表于 2007-3-26 16:44:24 | 显示全部楼层
Post by biosxjj
哦  我懂了 ...谢谢多多~~~

'多多'....
都是高中时太幼稚才起了这么一个奇怪的 ID, 现在想改 ID 又发现论坛似乎没有此功能; 想弃之又舍不得这 1000+ 回帖数....
回复 支持 反对

使用道具 举报

发表于 2007-3-26 21:45:56 | 显示全部楼层
被你们忽悠了,想了好久,发现原来不过是:
int a,b
b = a % 16
a/13 = ((a/16)*16 + b) / 13 = (13*a/16)/13 + (3*a/16)/13 + b/13;
而己,然后再递归。

PS:多多其实是个蛮可爱的名字啊!^_^
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-3-27 14:14:33 | 显示全部楼层
楼上的解释真精辟~~
回复 支持 反对

使用道具 举报

发表于 2007-3-27 14:20:01 | 显示全部楼层
按题意,加法也不能用吧? 位运算记得只包括 ~ ^ & | << >>  六种。
想了个按位全加的函数,没严格测试过,这样楼主的答案比较完整了~
  1. // 递归版
  2. int bit_plus(int a, int b)
  3. {
  4.     int carry=(a&b)<<1;
  5.     int sum=a^b;
  6.     if(!carry)return sum;
  7.     return bit_plus(carry,sum);
  8. }
  9. // 迭代版
  10. int bit_plus2(int a, int b)
  11. {
  12.     int carry=(a&b)<<1;
  13.     int sum=a^b;
  14.     int temp_sum;
  15.     while(carry)
  16.     {
  17.         temp_sum=carry^sum;
  18.         carry=(carry&sum)<<1;
  19.         sum=temp_sum;
  20.     }
  21.     return sum;
  22. }
复制代码
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-3-27 14:36:36 | 显示全部楼层
现在完美了  ...可惜遭bs了  当初我也忘记了 全加器的 写法~~~!!!~~~
回复 支持 反对

使用道具 举报

发表于 2007-3-27 16:29:01 | 显示全部楼层
Post by Lolita
按题意,加法也不能用吧? 位运算记得只包括 ~ ^ & | << >>  六种。
想了个按位全加的函数,没严格测试过,这样楼主的答案比较完整了~

Lolita 兄好久不见,欢迎老大回来!
回复 支持 反对

使用道具 举报

发表于 2007-3-27 17:10:02 | 显示全部楼层
DoDo 兄好! 别叫我老大,多不好意思,要向你学习的东西多了呢!
回复 支持 反对

使用道具 举报

发表于 2007-3-27 17:58:28 | 显示全部楼层
面试出这种题目没意思。所有成了气候的大公司的编码规范都不会允许用那种要让人看半天才懂的算法。学校里用用可以,真正工作时用反而会被BS的。
回复 支持 反对

使用道具 举报

发表于 2007-3-27 22:56:44 | 显示全部楼层
Post by masterdemon
面试出这种题目没意思。所有成了气候的大公司的编码规范都不会允许用那种要让人看半天才懂的算法。学校里用用可以,真正工作时用反而会被BS的。

知道为什么国产游戏对机器的配置要求那么高, 而效果又远不如国外的游戏吗? 就在于它的设计者会不会进行高级的优化, 会不会写这些 '被BS的' 代码.
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表