游戏开发论坛

 找回密码
 立即注册
搜索
查看: 8551|回复: 30

一道面试题....帮帮我啊!

[复制链接]

2

主题

61

帖子

61

积分

注册会员

Rank: 2

积分
61
发表于 2009-7-17 12:10:00 | 显示全部楼层 |阅读模式
用C++写程序求出三个数的最大值,不允许用if和else(此题主要考查思维灵活性和对C++的理解)

0

主题

4

帖子

0

积分

新手上路

Rank: 1

积分
0
发表于 2009-7-17 12:29:00 | 显示全部楼层

Re:一道面试题....帮帮我啊!

typename max = ( (a>=b)?a:b ) >= c ? ( (a>=b)?a:b ) : c 这个让用吗?

2

主题

61

帖子

61

积分

注册会员

Rank: 2

积分
61
 楼主| 发表于 2009-7-17 12:50:00 | 显示全部楼层

Re:一道面试题....帮帮我啊!

不知道啊,我写的是
template <class T>
T Max( const T& t1, const T& t2 )
{
    return t1 > t2 ? t1 : t2;
}

template <class T>
T Max3( const T& t1, const T& t2, const T& t3 )
{
     return Max( Max( t1, t2), t3 );
}

不知道对不对啊?

1

主题

4

帖子

0

积分

新手上路

Rank: 1

积分
0
发表于 2009-7-17 13:45:00 | 显示全部楼层

Re:一道面试题....帮帮我啊!

不错,应该是正解!

2

主题

61

帖子

61

积分

注册会员

Rank: 2

积分
61
 楼主| 发表于 2009-7-17 15:18:00 | 显示全部楼层

Re:一道面试题....帮帮我啊!

原来很少人懂啊,我并不差,我又有信心了!哈哈哈

71

主题

1330

帖子

2585

积分

金牌会员

Rank: 6Rank: 6

积分
2585
发表于 2009-7-17 15:22:00 | 显示全部楼层

Re:一道面试题....帮帮我啊!

? : 语法其实和if,else是一样的,如果面试说不允许使用if,else,哪么隐含的说法是你不能通过判断的方式去比较大小,而是需要通过算术的方法去实现。

我举一个2个数字的最大值返回方法
Max(A,B) = (A+B-|A-B|)/2+|A-B|

三个数值的同理可得。

0

主题

398

帖子

577

积分

高级会员

Rank: 4

积分
577
发表于 2009-7-17 15:38:00 | 显示全部楼层

Re:一道面试题....帮帮我啊!

int max(int a, int b)
{
DWORD m = (a - b) >> 31;
return (a & (~m)) | (b & m);
}

2

主题

61

帖子

61

积分

注册会员

Rank: 2

积分
61
 楼主| 发表于 2009-7-17 16:12:00 | 显示全部楼层

Re:一道面试题....帮帮我啊!

数值流?

5

主题

172

帖子

172

积分

注册会员

Rank: 2

积分
172
发表于 2009-7-17 18:42:00 | 显示全部楼层

Re: 一道面试题....帮帮我啊!

为什么这么偏....

71

主题

1330

帖子

2585

积分

金牌会员

Rank: 6Rank: 6

积分
2585
发表于 2009-7-17 18:54:00 | 显示全部楼层

Re:一道面试题....帮帮我啊!

不算很偏,如果小学,初中学过奥数,稍微思考一下就能得出算法。
不过这个题目的确要比一般的面试题要难一些,哪来考毕业生应该能筛选出一批基础不是很好的学生。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-12-19 07:47

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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