我很难理解如何用元素位数的总和替换 vector 中的所有元素。例如,如果我有这样的数字序列9 22 54 981,我的输出必须是9 4 9 18。我知道如何计算总和。我有一个叫做file_numbers的 vector ,但是我现在被困住了。谢谢您的帮助。

   int SumOfDigits(int digit)
{

    int sum = 0;
    while (digit > 0)
    {
        sum += digit % 10;
        digit /= 10;
    }
    return sum;
}
void FourthTask(vector<int>& file_numbers)
{
    std::transform(file_numbers.begin(),
        file_numbers.end(),
        file_numbers.begin(),SumOfDigits);
}

最佳答案

您可能需要#include <algorithm>

int SumOfDigits(int digit)
{
    int sum = 0;
    while (digit > 0)
    {
        sum += digit % 10;
        digit /= 10;
    }
    return sum;
}

void FourthTask(vector<int>& file_numbers)
{
    std::transform(file_numbers.begin(),
                   file_numbers.end(),
                   file_numbers.begin(),
                   SumOfDigits);
}

关于c++ - 如何用元素位数的总和替换 vector 中的所有元素?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47334537/

10-12 03:01