Таким образом, мне нужно реализовать эту формулу в C:Реализовать формулу суммы в C
Где п вводится пользователем и должно быть> = 1. Ci является i- й разряд числа п с к цифр, и Ки с линией является дополнением Ci (цифра + дополнение = 9). Например, число 21262 удовлетворяет этому уравнению, так как:
= 7^5 + 8^4 + 7^3 + 3^2 + 7^1 = 16807 + 4096 + 343 + 9 + 7 =
Я попытался сделать алгоритм и превратить его в программу на C, но когда я выполняю, что-то пойдет не так. У меня возникли проблемы с формулировкой цикла, который делает мощность k-i + 1.
#include <stdio.h>
int main() {
int n, t, k, c, i, s, power, j;
do {
printf("Enter n = ");
scanf("%d", &n);
} while (n < 1);
t = n; // Here we save the value of n, and operate with t
k = 0; // k counts the number of digits
while (t > 0) {
t = t/10;
k++; // k = number of digits
}
t = n;
s = 0;
for (i = 1; i <= k; i++) { // Starts the sum from i to k
c = 9 - t % 10; // Complements the digits
power = 1;
for (j = 1; j <= k-i+1; j++) // Start of loop that powers th number
power = c * power;
s = s + power;
t = t/10;
}
if (s == n)
printf("The number fulfills the equation");
else
printf("The number doesn't fulfill the equation");
return 0;
}
Как вы можете видеть, я попытался решить проблему питания, сделав петлю, которая умножает Ĉ дополнение само по себе к-я + 1 раз. Но что-то не так. Пожалуйста помоги!
вы прочитать номер из слева направо, а не справа налево –
для удобства чтения людьми, пожалуйста, последовательно отступайте от кода. В общем, отступ после КАЖДОЙ открывающей скобки '{' и un-indent перед каждой закрывающей скобкой '}' – user3629249