C++中的电源功能
Power function in C++
我正在玩一个幂函数的实现:
#include <iostream>
using namespace std;
int pow(int b, int e)
{
int result;
if (e == -1 && b != 0)
{
cout << "b = " << 1/b << endl;
return 1/b;
}
else if (b != 0 && e != 0)
{
//int e_int(int (e));
bool e_bool(e < 0);
e = (e_bool*-e + !e_bool*e);
result = b = pow(b, -e_bool)*(b*!e_bool + +e_bool);
cout << endl << ""result" = " << result << " " << e << endl;
for(int i = 1; i < e; i += 1)
{
result *= b;
}
return result;
}
else if (e != 0 && b == 0)
{
return 0;
}
else if (e == 0 && b != 0)
{
return 1;
}
else if (b == 1)
{
return 1;
}
else if (e == 1)
{
return b;
}
else
{
cout << endl << "Error";
return -1;
}
}
int main ()
{
cout << endl << pow(-2, -1);
return 0;
}
输出为:
b = 0
0
为什么 b 设置为 0?
整数除法只能产生整数结果。 您的程序会导致以下行:
cout << "b = " << 1/b << endl;
要运行,如果b
是大于 1 的任何整数,则结果将为 0
。
我不会说b
设置为 0。在你的函数中,你有这样的语句:
cout << "b = " << 1/b << endl;
由于b
是整数,因此1/b
是整数除法,值最终为0
。
相关文章:
- 在执行其他功能的同时播放动画(LED矩阵和Arduino/ESP8266)
- 多态性和功能结合
- 带内存和隔离功能的SQLite
- 在CMakeLists.txt的安装功能中使用.cmake文件有什么用
- 类模板的成员功能的定义在单独的TU中完全专业化
- 有没有一种方法可以创建一个带有哈希表的数据库,该哈希表具有恒定时间查找功能
- 如何在C++中获得"静态纯虚拟"功能?
- 两个文件使用彼此的功能-如何解决
- 我应该实现右值推送功能吗?我应该使用std::move吗
- QML按钮点击功能执行顺序
- 无法理解此 return 语句的功能,没有它就会发生运行时错误
- 有没有可能有一个只有ADL才能找到的非好友功能
- 功能样式转换从 'int' 到 'ItemType' 的匹配转换
- 文件系统:复制功能的速度秘诀是什么
- 在用于格式4的arm模拟器中实现功能时的一个问题
- 如何在Directwrite中获得给定字体的可用OpenType功能
- 对可变参数使用声明.如何选择正确的功能
- 询问在设计我的手臂模拟器功能表示格式1
- 电源功能模块化操作
- C++中的电源功能