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

Linjunwei1120 2017-11-02 08:19:53
昨天晚上笔试了广州邦普电脑。。。公司的嵌入式软件题目,遇到了一个让我这两天一直在想的问题,问题来了:计算2的n次方,不能使用乘法运算和循环。这个题目我只想到了一半就是利用“<<”就可以解决了,但是这个只是针对n是整数的情况,那要是n是double类型的应该怎么去处理???这个就是困扰我的问题。
...全文
908 24 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
24 条回复
切换为时间正序
请发表友善的回复…
发表回复
景行清欢 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的库函数,单纯去编是做不到的
屈工智能科技 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
  • 打赏
  • 举报
回复
只用位运算 ( &, |, ^, <<, >>) 完全可以实现所有的 运算, 就稍微麻烦点, 浮点数, 复数啥的也没啥问题, 以前应该贴过 ....
零隐 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
  • 打赏
  • 举报
回复
<<
加载更多回复(4)

70,023

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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