#include<iostream>using namespace std;long long int find(int n){ int nn = 1; for (int i = 0; i < n; i++) { nn *= 2; } return nn;}int main(){ cout << find(50); return 0;}结果是错的,为什么。(测试一下它是按照int类型输出的)
1 回答
已采纳
onemoo
TA贡献883条经验 获得超454个赞
虽然 find 函数的返回类型是 long long int,但是函数中的 nn 却是 int 类型!
函数中 nn 参与的所有运算也都是 int 的,所以最后 nn 中的数据太大溢出了。nn 中的数据已经不正确了,函数返回时的返回值由 nn 初始化,那么返回值自然也是不正确的,即便返回值类型是 long long int...
将 find 函数中的 nn 同样改为 long long int 就好了
- 1 回答
- 0 关注
- 3308 浏览
添加回答
举报
0/150
提交
取消