我无法在以下程序中找到2提升到电源32的确切解决方案。我正在使用cygwin终端。
#include <stdio.h>
main()
{
int base, expo;
long long value = 1;
printf("Enter base number and exponent respectively");
scanf("%d%d", &base, &expo);
while (expo != 0)
{
value *= base;
--expo;
}
printf("Answer = %ll ", value);
return 0;
}
我想要一些帮助,知道什么数据类型适合存储2加值到32的值。
答案 0 :(得分:3)
2
32
等于4294967296
。这可以通过long long
类型轻易表达。使用%lld
说明符。
答案 1 :(得分:0)
您可以使用GMP库https://gmplib.org/(它的设计适用于C和C ++编译器)。使用此库,您可以使用任意大数字(最大值仅受计算机内存和硬件架构的限制)。
修改:如果您希望base
和expo
产生适合long long
类型的内容,则其他答案会提供帮助。但由于您的代码段未对base
和expo
进行验证,我认为您可能有兴趣代表更大的数字。