有些面试题……

oN5GrzoN 2016-01-23 10:35:48
There are two int variables: a and b, don’t use “if”, “? :”, “switch”or other judgementstatements, find out the biggest one of the two numbers.

所谓的答案
答案:( ( a + b ) + abs( a- b ) ) / 2


怎么确定,这abs的实现里边,就没有用判断?如果说用stl函数可以的话,我直接把这两个数放到数组里,用std::sort排个序,出来,不就行了?
...全文
287 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
wangqiang5417 2016-02-04
  • 打赏
  • 举报
回复
引用 8 楼 fly_dragon_fly 的回复:
试了一下,这个应该可以的
int max(int a,int b)
{
    int c=a-b;
    return a+c*(c>>31);
}
这比那个所谓的答案靠谱
pcboyxhy 2016-02-03
  • 打赏
  • 举报
回复
{a,b}[a<b]
jiht594 2016-02-03
  • 打赏
  • 举报
回复
还用写程序?一眼我就能看出来
fly_dragon_fly 2016-02-03
  • 打赏
  • 举报
回复
试了一下,这个应该可以的
int max(int a,int b)
{
    int c=a-b;
    return a+c*(c>>31);
}
Saingel 2016-02-02
  • 打赏
  • 举报
回复
答案没错,他考得是数学逻辑功底,而不是无脑调用现成的函数
赵4老师 2016-01-26
  • 打赏
  • 举报
回复
仅供参考:
#include <stdio.h>
#define SWAP(a,b) do ((&(a))!=(&(b)))?((a)^=(b)^=(a)^=(b)):((a)=(a)); while (0)
char   *p1="1" ,*p2="2" ;
char    c1=1   , c2=2   ;
short   s1=1   , s2=2   ;
int     i1=1   , i2=2   ;
__int64 I1=1i64, I2=2i64;
float   f1=1.0f, f2=2.0f;
double  d1=1.0 , d2=2.0 ;
void main() {
    SWAP((int)p1,(int)p2);                printf("char *     %5s,   %5s\n",p1,p2);
    SWAP(c1,c2);                          printf("char       %5d,   %5d\n",c1,c2);
    SWAP(s1,s2);                          printf("short      %5d,   %5d\n",s1,s2);
    SWAP(i1,i2);                          printf("int        %5d,   %5d\n",i1,i2);
    SWAP(I1,I2);                          printf("__int64 %5I64d,%5I64d\n",I1,I2);
    SWAP(*(int     *)&f1,*(int     *)&f2);printf("float      %5g,   %5g\n",f1,f2);
    SWAP(*(__int64 *)&d1,*(__int64 *)&d2);printf("double    %5lg,  %5lg\n",d1,d2);

    SWAP(c1,c1);
    printf("%d\n",c1);
}
//char *         2,       1
//char           2,       1
//short          2,       1
//int            2,       1
//__int64     2,    1
//float          2,       1
//double        2,      1
//2
imGala 2016-01-26
  • 打赏
  • 举报
回复
赵4老师 2016-01-25
  • 打赏
  • 举报
回复
奇技淫巧
imGala 2016-01-25
  • 打赏
  • 举报
回复
奇技淫巧 不过好多题都热衷于这个...
fly_dragon_fly 2016-01-25
  • 打赏
  • 举报
回复
答案不对吧, abs应该是?:这种, 要是stl就更简单max就行了

15,440

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 非技术区
社区管理员
  • 非技术区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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