计算2的n次方,不能使用乘法运算和循环

Linjunwei1120 学生  2017-11-02 08:19:53
昨天晚上笔试了广州邦普电脑。。。公司的嵌入式软件题目,遇到了一个让我这两天一直在想的问题,问题来了:计算2的n次方,不能使用乘法运算和循环。这个题目我只想到了一半就是利用“<<”就可以解决了,但是这个只是针对n是整数的情况,那要是n是double类型的应该怎么去处理???这个就是困扰我的问题。
...全文
718 24 点赞 打赏 收藏 举报
写回复
24 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
苏千咲 2019-03-29
pow函数的参数可以是double类型的
  • 打赏
  • 举报
回复
苏千咲 2019-03-29
x的y次方: pow(x,y);
pow(2,n);可以么?
  • 打赏
  • 举报
回复
HWul 2019-03-27
int two_x(int x)
{
int num = 1;
num = num << x;
return num;
}
  • 打赏
  • 举报
回复
汉森伯逸 2019-03-27
引用 3 楼 FoolCarpe的回复:
不能使用乘法运算和循环, 用递归?
递归不也是循环…嵌套循环…
  • 打赏
  • 举报
回复
susususu2 2017-11-10
对代表指数部份的段位加n,就可以了啊。
  • 打赏
  • 举报
回复
Linjunwei1120 2017-11-10
引用 10 楼 zhao4zhong1 的回复:
[quote=引用 9 楼 Intel0011 的回复:] [quote=引用 8 楼 zhao4zhong1 的回复:] 你咋不想万一 要计算2的-1.2+2.3i次方捏?!
不用搬出复数吧,如果n足够大的话,再强的机器也无法得到结果[/quote] 矫枉必须过正![/quote] 我的想法也是这样,万一遇到浮点型的要考虑,毕竟题目没有说n的整数。真的需要考虑c的库函数,单纯去编是做不到的
  • 打赏
  • 举报
回复
Linjunwei1120 2017-11-10
真的需要考虑c的库函数,单纯去编是做不到的
  • 打赏
  • 举报
回复
weixin_40926388 2017-11-10
计算2的n方:pow(2.0,n) 2要写成2.0 头文件 #include<math>
  • 打赏
  • 举报
回复
mLee79 2017-11-10
应该说只需要 与非 ( ~(A&B), 储存( LDR/STR ), 分支( if ) 就够了 ... 没循环的话, 很多操作要展开, 会写的很长 .... 不过也可以 .....
  • 打赏
  • 举报
回复
mLee79 2017-11-10
只用位运算 ( &, |, ^, <<, >>) 完全可以实现所有的 运算, 就稍微麻烦点, 浮点数, 复数啥的也没啥问题, 以前应该贴过 ....
  • 打赏
  • 举报
回复
fly0413 2017-11-06
引用 7 楼 Intel0011 的回复:
如果可以使用C库函数的话,直接 double pow (double base, double exponent);
这位仁兄正解。哈哈哈
  • 打赏
  • 举报
回复
xian_wwq 2017-11-06
感觉就是考位运算的
  • 打赏
  • 举报
回复
过犹不及...
  • 打赏
  • 举报
回复
陪妳看星星 2017-11-06
找pow函数的源代码看看。 参考一下:http://blog.csdn.net/xiaoxiongli/article/details/2134626
  • 打赏
  • 举报
回复
赵4老师 2017-11-06
引用 9 楼 Intel0011 的回复:
[quote=引用 8 楼 zhao4zhong1 的回复:] 你咋不想万一 要计算2的-1.2+2.3i次方捏?!
不用搬出复数吧,如果n足够大的话,再强的机器也无法得到结果[/quote] 矫枉必须过正!
  • 打赏
  • 举报
回复
Intel0011 2017-11-06
引用 8 楼 zhao4zhong1 的回复:
你咋不想万一 要计算2的-1.2+2.3i次方捏?!
不用搬出复数吧,如果n足够大的话,再强的机器也无法得到结果
  • 打赏
  • 举报
回复
赵4老师 2017-11-06
你咋不想万一 要计算2的-1.2+2.3i次方捏?!
  • 打赏
  • 举报
回复
Intel0011 2017-11-06
如果可以使用C库函数的话,直接 double pow (double base, double exponent);
  • 打赏
  • 举报
回复
destory27 2017-11-06
次方最基本的定义是:n为正整数,
  • 打赏
  • 举报
回复
赵4老师 2017-11-06
<<
  • 打赏
  • 举报
回复
加载更多回复
相关推荐
发帖
C语言
加入

6.5w+

社区成员

C语言相关问题讨论
申请成为版主
帖子事件
创建了帖子
2017-11-02 08:19
社区公告
暂无公告