Представить заданное натуральное число в виде многочлена - C (СИ)

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

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

Дано натуральное число А. Составьте программу, представляющую его в виде многочлена. например, 123 ==> 1 * 10 ^ 2 + 2 * 10 ^ 1 + 3 * 10 ^ 0.

Решение задачи: «Представить заданное натуральное число в виде многочлена»

textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main()
{
int n,k=1,i,d=0;
scanf("%i",&n);
while (k<n){k*=10;d++;}
d--;
for(i=d;i>0;i--) {printf("%i * 10^%i +",n/(int)pow(10,i),i);n=n%(int)pow(10,i);}
printf("%i*10^0",n-1);
return 0;
}

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

В этом коде:

  1. Объявлены переменные: n, k, i, d типа int. Значение k инициализировано единицей, i инициализировано d равным нулю.
  2. С помощью функции scanf в переменную n считывается натуральное число, введенное пользователем.
  3. Переменная k умножается на 10 и увеличивается на единицу до тех пор, пока k не станет равным n. Переменная d используется для подсчета количества разрядов числа n.
  4. После достижения значения n, переменная d уменьшается на единицу в цикле for, начиная с d и до единицы. В каждой итерации цикла выводится уравнение вида n/(int)pow(10,i) * 10^i, где n делится на pow(10,i) для получения степени десятки, а затем умножается на 10^i для получения разряда в многочлене. Значение n при этом обновляется как остаток от деления на pow(10,i).
  5. В конце выводится уравнение вида (n-1) * 10^0, представляющее последний разряд числа n.
  6. Функция main возвращает ноль, что означает успешный конец работы программы.

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

10   голосов , оценка 4.3 из 5
Похожие ответы