【问题标题】:What is happening in this C++ code in C++ (Exponent Function)这个 C++ 代码在 C++ 中发生了什么(指数函数)
【发布时间】:2020-06-26 09:26:55
【问题描述】:
 int power(int baseNum, int powNum) {
     int result = 1;
 for(int i = 0; i < powNum; i++) {
       result = result * baseNum
}
 return result;
}

 int main()

{

  cout <<power(2 , 3);

   return 0;

来自YouTube Video.

所以我不明白的是他是如何从无到有地选择 int result = 1; 的?为什么不 = 2?

为什么 int i = 0 ,为什么不 = 1 ?

在“让我们分解”视频部分中,​​他说第一个结果是 1

但这不是0吗?

第一个循环是 0 下一个循环是 1 第三个循环是 2 然后它退出,因为它是 3

如果有人可以转录循环,那就太好了,这样我就可以确切地看到发生了什么。

最后我们如何使用循环进行这些计算 result = result * baseNum,这样我们就可以得到 8。

我刚开始学习 C++。

【问题讨论】:

  • (1) 如果格式正确,代码会更容易理解 (2) 暂时远离 C++,考虑如何使用铅笔 & 手动计算 baseNum ** powNum纸。
  • 请每个问题回答一个问题。并先做数学。如果你计算5^3,你会从2开始吗?

标签: c++


【解决方案1】:

所以我不明白的是他如何选择 int result = 1;从哪儿冒出来?为什么不 = 2?

也就是说,如果他在 for 循环中将结果相乘,它并不总是 0。 0 * 2 --> 0

关于 for 循环本身:

  1. 迭代:1 * 2 --> 2 / i = 0
  2. 迭代:2 * 2 --> 4 / i = 1
  3. 迭代:4 * 2 --> 8 / i = 2
  4. 迭代:i = 3 / 不小于 3 离开 for 循环

最后,他离开函数并返回结果,现在是 8。

对于 for 循环,以 2 为底获得 3 的幂,返回的结果与您仅乘以 2 * 2 * 2 的结果相同。

这正是你经历的 for 循环并进行第一次乘法 1 * 2,在第二次迭代中你计算你再次将结果乘以 2 * 2,然后你再次经历并计算下一次迭代 4 * 2 然后得到你想要的结果

【讨论】:

    猜你喜欢
    • 2020-12-13
    • 2015-10-20
    • 1970-01-01
    • 1970-01-01
    • 2014-01-25
    • 2018-11-12
    • 1970-01-01
    • 2015-12-27
    相关资源
    最近更新 更多