Помогите, пожалуйста, с кодом
Внимание! Это довольно старый топик, посты в него не попадут в новые, и их никто не увидит. Пишите пост, если хотите просто дополнить топик, а чтобы задать новый вопрос — начните новый.
Внимание! Это довольно старый топик, посты в него не попадут в новые, и их никто не увидит. Пишите пост, если хотите просто дополнить топик, а чтобы задать новый вопрос — начните новый.
я написал код создания большого числа, не могу понять что делать дальше, поэтому прошу помощи… вот код, который я написал, то что закомментировано это попытки решения данной задачи
вот само задание
![][1]
include <string.h>
include <conio.h>
include<cmath>
using namespace std;
struct bignumber // описание узла
{
short digit; // цифра
bignumber *next; // поле для связи со следующей цифрой числа
};
bignumber * create(char str) // создание большого числа из текстовой строки
{
bignumber p, *top = NULL;
int i;
for (i = 0; i<strlen(str); i++)
{
p = new bignumber;
p->digit = short(str[i]) — short('0');
p->next = top;
top = p;
}
return top;
}
void print(const bignumber * first) // рекурсивная распечатка цифр числа
{
if (first != NULL) // если ещё не конец числа
{
print(first->next); //вызываем печать для старшего разряда
cout << first->digit; //печать текущего разряда
}
}
void clear(bignumber first) // очистка стека (удаление всех узлов из стека)
{
bignumber temp;
while (first != NULL) // пока не достигли конца
{
temp = (first)->next; // устанавливаем указатель temp на следующий элемент
delete first;
first= temp; // переводим указатель на следующий элемент
}
}
/
void input_list(bignumber &first)
{
int n;
first = new bignumber;
first->digit = pow(1, 2);
bignumber q = first;
for (int i = 2; i <= n ; i++)
{
q->next = new bignumber;
q = q->next;
q->digit = pow(i, 2);
}
q->next = 0;
}
void print_sum(bignumber q)
{
unsigned long long sum=0;
while (q)
{
sum+=q->digit;
q = q->next;
}
cout <<«sum = »<<sum<< endl;
}/
int main()
{
setlocale(LC_ALL, «Russian»);
bignumber *first = 0;
char n[256];
cout << «Введите большое число» << endl;
cin >> n;
first = create(n);
cout << «Введенное число:» << endl;
print(first); // распечатка большого числа
cout << endl;
//input_list(first);
//print_sum(first);
cin.get();
clear(&first); // очистка
}