В моем куске кода мне нужно сложить сумму цифр длинного целого числа, оно суммирует их, но все они после друг друга, где мне нужна только конечная сумма
У меня естьпытался использовать разные циклы while и разные арифметические операции.
#include <stdio.h>
#include <cs50.h>
#include <math.h>
int main(void)
{ // number for testing
long number = 378282246310005;
int digit;
int digit2;
int position = 0;
int position2 = 0;
int sum = 0;
printf("%li\n", number);
while (number > 0)
{
digit = number % 10;
number /= 10;
position++;
if (position % 2 == 0)
{
digit *= 2;
while (digit > 0)
{
digit2 = digit % 10;
digit /= 10;
sum = sum + digit2 % 10;
digit2 = digit2 / 10;
printf("%i", sum);
position2++;
}
}
// else if (position % 2 == 1)
// {
// printf("%i", digit);
// }
}
printf("\n");
}
То, что у меня есть (и то, что также необходимо), - это каждая другая цифра, умноженная на 2, которая дает: 684441 (исключая 0, потому что они не имеют значения)). Но когда я их суммирую, это дает мне суммы друг за другом примерно так: 61418222627, который включает в конце мои 27, но мне нужно только это число.