用于输出列中对数函数结果的合适循环(C++)

Suitable loop for output the results of logarithm function in column (C++)

我有一些 C++ 代码可以计算一个输入数字的 log2(n)。

#include <iostream>
#include <cmath>

using namespace std;

double log(double a, double b) {
    return log(b) / log(a);
}

int main() {
    int n;
    cin >> n;
    cout << (int)log(2, n);
    return 0;
}

如何让它处理 n 个输入的数字。因此,例如,5 个数字的输入必须是这样的(每个数字在 self 行上):

5 // Enter amount of numbers below
24958 // Enter the first number
48569 // ... second number...
48564
40506
59232

输出将是:

14
15
15
15
15

你应该使用数组来存储数字。

#include <iostream>
#include <cmath>

using namespace std;

double log(double a, double b) {
    return log(b) / log(a);
}

int main() {
    int iter, i;

    cin >> iter;
    int arr[iter];

    for ( i=0; i<iter; i++)
       cin >> arr[i];

    for ( i=0; i<iter; i++)
       cout << (int)log(2, arr[i])<<endl;

    return 0;
}

你能展示一下你用来解析用户输入的代码是什么吗?如果您还没有创建这样的代码,那么只需执行以下操作:

  1. 读取用户输入并将第一行存储在字符串中并将其转换为整数(查看std::getline)
  2. 循环 n 次,并使用 getline 读取剩余的条目,调用您的对数方法并显示其输出