Найти все числа от 0 до 200, которые нацело делятся на сумму своих цифр - C (СИ)
Формулировка задачи:
#include <stdio.h> #include <stdlib.h> #include <stdlib.h> int main() { int p[200], i, *p_1, a, b, c, r, q; for(i=0;i<200;i++) *p_1=p[i]; a=i/100; b=(i-a)/10; c=i-a-b; r=a+b+c; q=*p_1/r; if(q==0){ printf("%d", q); getchar(); return 0; }}
Решение задачи: «Найти все числа от 0 до 200, которые нацело делятся на сумму своих цифр»
#include <stdio.h> #include <stdlib.h> int main() { int p, i, s; for(i=1;i<=200;i++) { p=i; for(s=0; p; p/=10) s += p%10; if (i%s==0) printf("%d\n", i); } getchar(); return 0; }
Объяснение кода листинга программы
В этом коде используется два вложенных цикла. Цикл for(i=1;i<=200;i++) итерирует по всем числам от 1 до 200. Внутри этого цикла есть второй цикл for(s=0; p; p/=10), который вычисляет сумму цифр текущего числа. Переменная s инициализируется нулем. Затем в каждой итерации цикла значение переменной p делится на 10 и результат прибавляется к переменной s. Таким образом, в переменной s накапливается сумма цифр текущего числа. Если число нацело делится на сумму своих цифр (т.е. i%s==0), то оно выводится на экран с помощью функции printf. Код выполняется до тех пор, пока не будут выполнены два условия: 1) i не станет равным 201; 2) не будет достигнуто условие остановки внутреннего цикла, когда p станет равным нулю. Это произойдет, когда число будет иметь одну цифру.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д