使用cygwin终端在c中打印数字的功率

时间:2014-02-15 15:42:26

标签: c cygwin type-conversion

我无法在以下程序中找到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的值。

2 个答案:

答案 0 :(得分:3)

2 32 等于4294967296。这可以通过long long类型轻易表达。使用%lld说明符。

答案 1 :(得分:0)

您可以使用GMP库https://gmplib.org/(它的设计适用于C和C ++编译器)。使用此库,您可以使用任意大数字(最大值仅受计算机内存和硬件架构的限制)。

修改:如果您希望baseexpo产生适合long long类型的内容,则其他答案会提供帮助。但由于您的代码段未对baseexpo进行验证,我认为您可能有兴趣代表更大的数字。