社区
C语言
帖子详情
朗讯面试题
shiaisong
2004-10-25 09:36:50
There are two int variables: a and b, don’t use “if”, “? :”, “switch” or other judgement statements, find out the biggest one of the two numbers.
...全文
1760
86
打赏
收藏
朗讯面试题
There are two int variables: a and b, don’t use “if”, “? :”, “switch” or other judgement statements, find out the biggest one of the two numbers.
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
86 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
lujianping
2004-11-04
打赏
举报
回复
看看正确结果吧:
a&~((a-b)>>31))+(b&~((b-a)>>31)
绝对没有任何的比较函数,没有除0问题,整数负数都没问题,我用100分担保。
Aylazhang
2004-10-30
打赏
举报
回复
化繁为简!
hy1080
2004-10-30
打赏
举报
回复
crystaldn(crystaldn) ( ) 的方法显然不正确
Q_Qwert
2004-10-29
打赏
举报
回复
don’t use “if”, “? :”, “switch” or other judgement statements,
->所以最后的答案应该是: return (int)(a>b)*a + (int)(a<=b)*b;
->pmax = p[a<b];
这有几个判断了?!。。。
ra3
2004-10-29
打赏
举报
回复
好贴,收藏!
牛人真多。 :)
cber
2004-10-29
打赏
举报
回复
晕,写个程序错了那么多,看来最近写程序确实是少了
to 三角猫:
你可以把上面的逻辑操作用相应的位操作替换就可以了,如'||'换成'|','&&'换成'&'试一试
我实在是没有精力再测试了
cber
2004-10-29
打赏
举报
回复
晕,还是写错了
应该是:
int get_sign_symbol(int val)
{
int tmp = val;
tmp >>= (sizeof(val) * CHAR_BIT - 1);
tmp &= 0x1;
return tmp;
}
deltacat
2004-10-29
打赏
举报
回复
其实我觉得用移位比较好。
另外,题面上虽说是judgement statements,出题的意思应该是不作比较而得出。所以题目的意思应该是逻辑操作都是不能用的。
cber
2004-10-29
打赏
举报
回复
ft,这个函数写错了,应该是
int get_sign_symbol(int val)
{
return val >> (sizeof(val) * CHAR_BITS - 1);
}
cber
2004-10-29
打赏
举报
回复
#include <iostream>
using namespace std;
int get_sign_symbol(int val)
{
return val >> (sizeof(val) - 1);
}
int is_not_zero(int val)
{
val <<= 2;
val /= (val - 1);
val &= 0x1;
return val;
}
int main()
{
int a = 5, b = 4;
int nums[2];
nums[0] = a;
nums[1] = b;
int c, d, e, f, g, h, i;
c = a << 1;
d = b << 1;
e = a & 0x1;
f = b & 0x1;
g = c - d;
h = get_sign_symbol(c - d);
i = get_sign_symbol(e - f);
// if h == 1 (a < b) return nums[1];
// if h == 0 && is_not_zero(g) return nums[0]
// if h == 0 && ^is_not_zero(g) return nums[i]
cout << nums[h || ((is_not_zero(g) ^ 0x1) && i)];
return 0;
}
刚刚写的,充分考虑了溢出问题
Kenny_Glacier
2004-10-29
打赏
举报
回复
#include<stdio.h>
main()
{
int a,b,k;
char *strs[2] = {"a","b"},ch;
scanf("%d%d",&a,&b);
k=a-b;
k=k>>31;
k=k&1;
printf("max=%s",strs[k]);
}
看看这个行吗?? 我不知道怎么说它们相等。
cuikai01
2004-10-29
打赏
举报
回复
int i = (int)pow(2, a-b);//2的a-b次方
for(;i;)
return a;
return b;
crystaldn
2004-10-29
打赏
举报
回复
max = ((a+b)+sqrt((a-b)*(a-b)) / 2
顶
hy1080
2004-10-29
打赏
举报
回复
fallhunter(不乖) ( )的方法在BCB下也通过了
a=0;
b=0;
a=5;
b=4;
a=4;
b=5;
没有用跳转指令,
汗阿,还好题上只说不许判断没说不许比较
to colin310(别问我是谁) ( )
a<b显然是一个逻辑判断。
apple3_cx
2004-10-28
打赏
举报
回复
血精灵的不错!支持!呵呵
colin310
2004-10-28
打赏
举报
回复
对不起啊,我是新手,pmax = p[a<b];是什么意思啊
双杯献酒
2004-10-28
打赏
举报
回复
fallhunter(不乖)
的方法不错。
wzq1979
2004-10-28
打赏
举报
回复
fallhunter(不乖) 的方法,高。
fallhunter
2004-10-28
打赏
举报
回复
更正:
int * p[2]={&a,&b};
int * pmax;
pmax = p[a<b];
刚在VC试了,OK
fallhunter
2004-10-28
打赏
举报
回复
更正:
int * p[2]={&a,&b};
int * pmax;
pmax = p[a<b];
刚在VC试了,OK
加载更多回复(66)
朗讯
面试题
(至09年)
朗讯
面试题
总结,包括最新09年前N轮的题目
朗讯
笔试
面试题
大全
朗讯
笔试
面试题
大全,包含近几年招聘的笔试
面试题
,物超所值
朗讯
笔试题.
回到题目中的内容,面试或笔试中可能会考察你对这些基本概念的理解和应用,例如解释操作系统的作用,比较C++中动态内存管理的不同方法,以及理解继承的不同模式及其影响。对于“Explain ‘What’s WINXP OS?’ to ...
各大IT公司
面试题
集
"各大IT公司
面试题
集"包含了多家知名企业的历年
面试题
目,这些题目覆盖了C、C++、JAVA、网络等多个核心领域,旨在帮助求职者充分准备,提升自己的竞争力。以下是针对这些知识点的详细解析: 1. **C语言**:C语言是...
朗讯
笔试题,青岛
朗讯
,笔试
【
朗讯
笔试题】主要考察的是应聘者的综合技术能力和逻辑思维。题目涵盖了多个领域,包括英语、智力题、基本算法、数据库操作、操作系统知识、程序填充、程序改错以及小程序编写。下面对这些知识点进行详细解析: 1....
C语言
70,023
社区成员
243,263
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章