我很难理解如何用元素位数的总和替换 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/