为什么我不能表达 10 次方 10
why can't I express 10 power 10
我试图表达 10 的 10 次方,但它不起作用,所以我认为问题是数据类型的范围。
最后,我将类型从 int 更改为__int64
但它尚未正常工作。
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
int a, r, n;
__int64 d;
cin >> a; // a=10
cin >> r; // r=10
cin >> n; // n=10
d = a * pow (r, n - 1);
cout << int(d);
}
我的预期答案是 10000000000,但操作结果是1410065408
怎么了?
您正在尝试将__int64
转换为无法在cout
语句中保存10000000000
等值的int
。
不要混淆__int64
(保存 8 字节数据(和int
(保存 4 字节数据(。只需删除转换int()
即可。
#include <bits/stdc++.h>
using namespace std;
int main()
{
int a,n;
long long int d; //change the type to long long int
cin >> a;
cin >> n; // n=10
d = pow (a, n );
cout << d;
}
问题是数据类型的范围。通过更改为"long long int",您将获得预期的答案 10000000000。
对于大整数,请使用 powl(a,b( 而不是 pow(a,b(。
相关文章:
- C++我的数学有什么问题,为什么我的代码不能正确循环
- 为什么在没有显式默认构造函数的情况下,将另一个结构封装在联合中作为成员的结构不能编译
- 为什么我的for循环不能正确获取argv
- 不能在初始值设定项列表中将非常量表达式从类型 'int' 缩小到'unsigned long long'
- 为什么我不能在 FOR LOOP 中使用 i/10,C++?
- 为什么我不能在不创建字符串变量的情况下使用函数的字符串输出
- 为什么模板类中的对象不能返回值
- 为什么我不能在一个类的不同行中声明和定义成员变量?
- 为什么我不能在 C++ 中的特定函数重载中调用同一函数的任何其他重载?
- ld:bind_at_load和-bitcode_bundle(Xcode设置ENABLE_bitcode=YES)不能
- 数组长度,为什么从命令行获取时不能使用它?
- Windows/Cygwin - 不能使用 pybind11 - 犯错误
- 为什么我不能使用 EGL 创建无头 OpenGl 上下文?
- 递归模板化函数不能分配给具有常量限定类型"const tt &"的变量"state"
- 为什么我不能将一个对象push_back到属于另一个类的对象向量中?
- 为什么我不能将 rand() 与数组的大小一起使用?
- 为什么虚函数不能是静态的和全局的?
- 为什么我不能在 while 循环中创建线程?
- 为什么这个音频包络不能通过开关的情况?
- 为什么我不能表达 10 次方 10