Найти все числа от 0 до 200, которые нацело делятся на сумму своих цифр - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Помогите пожалуйста! Необходимо написать программу. Условия: Найти все числа от 0 до 200, которые нацело делятся на сумму своих цифр.
Листинг программы
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <stdlib.h>
  4. int main()
  5. {
  6. int p[200], i, *p_1, a, b, c, r, q;
  7. for(i=0;i<200;i++)
  8. *p_1=p[i];
  9. a=i/100;
  10. b=(i-a)/10;
  11. c=i-a-b;
  12. r=a+b+c;
  13. q=*p_1/r;
  14. if(q==0){
  15. printf("%d", q);
  16. getchar();
  17. return 0;
  18. }}

Решение задачи: «Найти все числа от 0 до 200, которые нацело делятся на сумму своих цифр»

textual
Листинг программы
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. int main()
  5. {
  6. int p, i, s;
  7. for(i=1;i<=200;i++) {
  8. p=i;
  9. for(s=0; p; p/=10) s += p%10;
  10. if (i%s==0) printf("%d\n", i);
  11. }
  12. getchar();
  13. return 0;
  14. }

Объяснение кода листинга программы

В этом коде используется два вложенных цикла. Цикл 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 станет равным нулю. Это произойдет, когда число будет иметь одну цифру.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

9   голосов , оценка 4.222 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы