проблемы с получением суммы цифр - PullRequest
0 голосов
/ 07 ноября 2019

В моем куске кода мне нужно сложить сумму цифр длинного целого числа, оно суммирует их, но все они после друг друга, где мне нужна только конечная сумма

У меня естьпытался использовать разные циклы 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, но мне нужно только это число.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...