Как видно из названия, я пытаюсь найти сумму цифр, умноженных на две другие цифры числа, введенного в функцию. Первая цифра будет второй до последней. Например, ввод 58423 должен вернуть 2 * 2 (4), 8 * 2 (16-> 1 + 6 = 7) -> 4 + 7 = 11. Шахта вообще не работает и, кажется, возвращает случайный номера. Функция ниже.
Я использую тот факт, что n% 10 даст вам самую правую цифру n, а (n / 10)% 10 даст вам следующую правую цифру n, и так далее, где n - введенное число.
int everyOther(long num) //(n / 10) % 10 will get you the next rightmost
digit
{
int incrementer = 1;
int total = 0;
long shifter = 1;
int a = 0;
while(true)
{
shifter = shifter *100;
if(num/shifter == 0)
{
break; // will have reached the end of the number if this is
//true
}
a = 2* ((num / shifter) % 10); // every other digit right to left
//starting from the second to last, multiplied by two
total = total + (a/10 + a%10); //sum of the above product's
//digits
incrementer++;
}
return total;
}