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