如何使用 for 循环使用指数

Posted

技术标签:

【中文标题】如何使用 for 循环使用指数【英文标题】:How to use exponents using a for loop 【发布时间】:2015-03-06 19:46:08 【问题描述】:

我正在为我的编程课编写一个函数 HW,并且我正在尝试编写一个函数来允许我进行指数数学运算(以简单的形式)。 (哦,我不能使用实际的指数函数,我必须使用 for 循环、if 语句或其他类似的东西编写自己的函数。) EX:用户进入基地,然后输入力量来提升它。所以用户输入: 5 3 它应该是 5 的 3 次方,所以它应该输出 125 (5x5x5)。但是我的 for 循环无法正常工作。我应该如何构建我的 for 循环以正确处理指数数学? 代码: int main()

int base, pow;

scanf("%d", &base);
scanf("%d", &pow);

int i;
for (i=0; i<=pow; i++) 
    i *= base;
    printf("%d\n", i);


printf("%d", i);

【问题讨论】:

【参考方案1】:

那么,您对循环和结果使用相同的变量。你不想那样做。

int j = 1;
for(i =  0; i < pow; i++)

      j*= base;

是你想要的。你在循环计数上也差了一个。随着 i

i=0, j * 5 = 5, i=1

i=1, j * 5 = 25,i=2

i=2, j * 5 = 125,i=3。这是你想停止的地方,但是 3

i=3, j *5 = 625,i=4。 4 不是

【讨论】:

【参考方案2】:

循环显然是错误的:

for (i=0; i<=pow; i++) 
    i *= base;
    printf("%d\n", i);

出于某种原因,您将循环计数器乘以基数,这不会产生任何好处。 正确的应该是:

int result = 1;
for (i=0; i < pow; i++) 
    result *= base;

【讨论】:

【参考方案3】:

您需要一个从 1 开始并每次乘以基数的累加器。这个累加器也不应该是 i(因为这会在 for 循环的每一步发生变化)。

试试

int base, pow;

scanf("%d", &base);
scanf("%d", &pow);

int i, accumulator;
accumulator = 1
for (i=0; i<pow; i++) 
  accumulator *= base;
  printf("%d\n", accumulator);


printf("%d", accumulator);

【讨论】:

循环中有一个额外的迭代。

以上是关于如何使用 for 循环使用指数的主要内容,如果未能解决你的问题,请参考以下文章

C++ 嵌套 for 循环,用于设置基数/指数的指数

如何使用 for 循环创建 UIImageView 动态网格?

我如何在 for 循环外使用 for 循环范围变量形式?

如何在Django模板的内部for循环中使用外部for循环值

Swift 3:如何使用 for 循环来循环数组

如何将两个for循环嵌套使用,要求内层循环结束,外层也一起结束。