Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 27, средняя оценка - 4.89
xxxfelxxx
0 / 0 / 0
Регистрация: 24.10.2010
Сообщений: 31
#1

Уравнение с пропущенными цифрами - C++

23.11.2010, 22:57. Просмотров 3513. Ответов 26
Метки нет (Все метки)

Нужна программа на Си
Помогите пожалуйста


В уравнении вида A + B = C, где A, B и C — неотрицательные целые числа, некоторые цифры заменены на знаки вопроса.

Необходимо подставить вместо знаков вопроса такие десятичные цифры, чтобы уравнение стало верным, либо определить, что это невозможно.

На входе подаётся единственная строка текста — уравнение с вопросительными знаками. Длина уравнения не превышает 200 символов. Входные данные не содержат никаких символов, кроме десятичных цифр, вопросительных знаков, символа «плюс» и символа «равно». Кроме того, после конца строки может следовать символ перевода строки.

На стандартный поток вывода напечатайте уравнение с подставленными вместо знаков вопроса цифрами, если решение существует, и выведите единственное слово No, если решения нет. Если задача допускает несколько решений, выводите любое. В ответе разрешены ведущие нули (см. примеры).

Примеры

Входные данные Результат работы
?2+34=4? 12+34=46

?2+34=47 No

??2?4+9?=355 00264+91=355
Добавлено через 33 минуты
upupupup
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.11.2010, 22:57     Уравнение с пропущенными цифрами
Посмотрите здесь:

Вывод фамилии, имени и отчества с помощью функции с явно заданными или частично пропущенными параметрами - C++
1 Написать функцию с параметрами по умолчанию в соответствии с вариантом , продемонстрировать различные способы вызова функции: • с...

Работа с цифрами - C++
Привет всем, помогите пожалуйста решить задачу. Заменить в натуральном числе все цифры 7 цифрами 8 и удалить из записи числа все единицы,...

задача с цифрами - C++
a) Дано трёхзначное число. Определить, есть ли среди его цифр одинаковые? b) Дано натуральное число с различными цифрами. Определить,...

Работа с цифрами - C++
Не могу понять, что в программе не так. Алгоритм правильный, но расчет не идет. Исходное задание: Напишите программу, принимающую с...

Заполнение массива цифрами от 1 до 8 - C++
Здравствуйте, есть массив который создается динамически, его максимальный размер 1 - 8 в каждой ячейке может быть число от 1 до 8 int...

Выбор цифрами и выход - C++
Кто может поделиться кодом как сделать чтоб отображение пункта было не только посредством кнопок (вверх-вниз) но и цифрами 1 2 3 4 5 и...

Заполнение массива 6*6 цифрами от 1 до 36 - C++
Заполнить массив 6*6 цифрами от 1 до 36 по следующей схеме 1 36 35 33 30 26 2 3 34 32 29 25 4 5 6 31 28 24 7 8 9 10 27 23 11 12...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
rrrFer
Заблокирован
24.11.2010, 10:03     Уравнение с пропущенными цифрами #2
Цитата Сообщение от xxxfelxxx Посмотреть сообщение
Добавлено через 33 минуты
upupupup
http://www.cyberforum.ru/announcement.php?a=3
2.13 Если на ваш вопрос долгое время нет ответа, уточните его, приведите дополнительные сведения, которые могут помочь участникам форума решить вашу проблему.
2.14 Чтобы "поднять" тему в разделе и поиске по форуму, используйте осмысленные сообщения, например "Тема/проблема/задача актуальна". Если вы чего-то достигли в решении проблемы на этот момент, сообщите об этом.
silent_1991
Эксперт С++
4958 / 3034 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
25.11.2010, 12:34     Уравнение с пропущенными цифрами #3
Если в лоб, то составляем диофантово уравнение с некоторым количеством неизвестных и решаем его перебором.

Добавлено через 4 минуты
Короче говоря, отбросив термин "диофантово уравнение", самое тупое решение в лоб - перебор цифр.
Kastaneda
Форумчанин
Эксперт С++
4479 / 2841 / 227
Регистрация: 12.12.2009
Сообщений: 7,224
Записей в блоге: 1
Завершенные тесты: 1
25.11.2010, 12:47     Уравнение с пропущенными цифрами #4
Цитата Сообщение от silent_1991 Посмотреть сообщение
самое тупое решение в лоб - перебор цифр
Цитата Сообщение от xxxfelxxx Посмотреть сообщение
Длина уравнения не превышает 200 символов
Боюсь, что перебор может занять очень много времени, наверняка есть какой-то способ, чтоб решать подобные вещи.
silent_1991
Эксперт С++
4958 / 3034 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
25.11.2010, 12:49     Уравнение с пропущенными цифрами #5
Kastaneda, а мне кажется, нет (ИМХО, но надо проверять). Достаточно быстрая операция (относительно) - сложить пару длинных чисел, отнять третье и сравнить с нулём.
Но если очень сильно подумать, думаю, можно придумать некоторые проверки, которые позволять отбросить некоторые группы вариантов. Но думать что-то неохота)))
Kastaneda
Форумчанин
Эксперт С++
4479 / 2841 / 227
Регистрация: 12.12.2009
Сообщений: 7,224
Записей в блоге: 1
Завершенные тесты: 1
25.11.2010, 13:26     Уравнение с пропущенными цифрами #6
Цитата Сообщение от silent_1991 Посмотреть сообщение
сложить пару длинных чисел, отнять третье и сравнить с нулём
а если будет 10 слогаемых? И среди них много символов '?'
Я вижу картину так:
Писать парсер - считать знаки '?' в числах, считать кол-во цифр. Перебор осуществляется так: перебирать цифры 0-9, каждую умножать на 10 в соответствующей степени и т.д. Проще показать на примере:
Код
есть число "??4?" - кол-во цифр-4
dig=0*1000+0*100+4*10+0*1
если это число не подошло, то:
dig= 0*1000+0*100+4*10+1*1
и т.д. таким образом нужно перебрать 3^10 выриантов. И так с каждым числом. По-моему ооочень долго.
Может я сильно перемудрил, на вроде так)
silent_1991
Эксперт С++
4958 / 3034 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
25.11.2010, 13:28     Уравнение с пропущенными цифрами #7
Kastaneda, 10 слагаемых не будет по условию.
Kastaneda
Форумчанин
Эксперт С++
4479 / 2841 / 227
Регистрация: 12.12.2009
Сообщений: 7,224
Записей в блоге: 1
Завершенные тесты: 1
25.11.2010, 13:31     Уравнение с пропущенными цифрами #8
А зачем тогда:
Длина уравнения не превышает 200 символов
Даже если 2 слогаемых, то при 200 символов, нужно перебрать миллиарды комбинаций (ну, смотря сколько пропущенных цифр)
silent_1991
Эксперт С++
4958 / 3034 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
25.11.2010, 13:49     Уравнение с пропущенными цифрами #9
Kastaneda, не, понятно, что вариантов много. И перебора много. Но просто мне кажется, что вся задача строится на переборе. И иначе её не решить. Разве что, как я уже говорил, можно определить какие-нибудь свойства, которые позволят отпросить некоторые наборы. Но я не силён в теории чисел, поэтому так просто эти свойства вряд ли всплывут, тут надо что-нибудь покурить в плане теории)))
Kastaneda
Форумчанин
Эксперт С++
4479 / 2841 / 227
Регистрация: 12.12.2009
Сообщений: 7,224
Записей в блоге: 1
Завершенные тесты: 1
25.11.2010, 14:17     Уравнение с пропущенными цифрами #10
Немного подумав нашел способ сузить диапазон перебора:
вот выражение:
?2+34=4?
очевидно, что результат может быть от 40 до 49. От наименьшего и от наибольшего отнимаем 34 (число без '?'), получается, что число ?2 может принимать значения от 6 до 15. Числа 6-9 сразу откидываем, остается перебрать 10-15 с результатами 40-49, т.е. 5*9=45 комбинаций.

Добавлено через 2 минуты
да, и еще, в введенном примере по-любому должно присутствовать хотя бы одно число без '?', иначе однозначного ответа не может быть.
silent_1991
Эксперт С++
4958 / 3034 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
25.11.2010, 14:20     Уравнение с пропущенными цифрами #11
Да его и так может не быть, по условию надо выбрать любой из вариантов (другими словаим первый попавшийся))) )
Kastaneda
Форумчанин
Эксперт С++
4479 / 2841 / 227
Регистрация: 12.12.2009
Сообщений: 7,224
Записей в блоге: 1
Завершенные тесты: 1
25.11.2010, 14:30     Уравнение с пропущенными цифрами #12
Цитата Сообщение от Kastaneda Посмотреть сообщение
Числа 6-9 сразу откидываем, остается перебрать 10-15 с результатами 40-49, т.е. 5*9=45 комбинаций.
Я тут еще ступил, в диапазон 10-15 с маской ?2 входит только 12, таким образом нужно перебрать всего 1*10=10 комбинаций. Вместо 100 (это если перебирать все варианты), по-моему довольно существенный выигрыш.

Добавлено через 43 секунды
Цитата Сообщение от silent_1991 Посмотреть сообщение
Да его и так может не быть, по условию надо выбрать любой из вариантов (другими словаим первый попавшийся))) )
В вышепреведенном примере как раз может.
ForEveR
В астрале
Эксперт С++
7968 / 4730 / 320
Регистрация: 24.06.2010
Сообщений: 10,539
Завершенные тесты: 3
25.11.2010, 14:45     Уравнение с пропущенными цифрами #13
deleted.
Хотя все равно как-то дико странно насчет нулей...
valeriikozlov
Эксперт C++
4669 / 2495 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
25.11.2010, 16:16     Уравнение с пропущенными цифрами #14
Я предлагаю с помощью рекурсии. По смыслу представляю решение так: ставим три числа в столбик (как при складывании столбиком) число A, число B, число C. Проходим от младших разрядов к старшим.
Может быть три ситуации:
1. Мы можем подобрать цифру (цифры) когда при их сложении, переноса 1 в следующие разряды не будет, например:
?
3
7
или так когда переноса 1 с предыдущих разрядов не было)
?
?
9
в этом случае, выбираем любую подстановку цифры (цифр) и больше к этим разрядам мы не вернемся.
2. Мы можем подобрать цифру (цифры) когда при их сложении, перенос 1 в следующие разряды будет обязательно (какие бы варианты цифры (цифр) мы не перебирали в этих разрядах), например:
6
8
?
или так: (когда перенос 1 с предыдущих разрядов есть)
?
9
?
и в этом случае, выбираем любую подстановку цифры (цифр) и больше к этим разрядам мы не вернемся.
3. Мы можем подобрать цифру (цифры) когда при их сложении, перенос 1 в следующие разряды может быть, а может и не быть.
Вот здесь нужно выбрать один (любой) вариант с переносом 1, второй (любой) вариант без переноса 1. Этих двух вариантов хватит.
Этот процесс выбора думаю легко реализовать с помощью рек. функции. В параметрах передавать, номер разряда (очередного разряда который будем рассматривать) и переменную по которой определять, есть ли перенос 1 с предыдущих разрядов или нет.
В самой функции нужно тщательно продумать варианты когда есть один из вариантов, когда два варианта, когда нет вообще вариантов:
- например:
2
3
8
или (есть перенос 1 с предыдущих разрядов)
4
?
4
При окончании любого из чисел (числа): A,B, C продолжаем рекурсию до конца последнего разряда самого длинного числа, при этом представляя в функции отсутствующие разряды закончившихся чисел нулями.
Если один из вариантов получился, то остальные ветви рекурсии не продолжаем.
Вот вроде так.
valeriikozlov
Эксперт C++
4669 / 2495 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
27.11.2010, 21:42     Уравнение с пропущенными цифрами #15
2-ое суток меня не было, не было возможности зайти на форум, но теперь обращаюсь к xxxfelxxx - если обещаете сообщить результаты сдачи этой задачи, то обещаю, что код напишу.
silent_1991
Эксперт С++
4958 / 3034 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
27.11.2010, 22:05     Уравнение с пропущенными цифрами #16
valeriikozlov, эка она вас захватила!)))
valeriikozlov
Эксперт C++
4669 / 2495 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
27.11.2010, 22:36     Уравнение с пропущенными цифрами #17
Мне нравятся подобные задачи (она типа олимпиадной, а может даже и есть олимпиадная).
silent_1991
Эксперт С++
4958 / 3034 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
27.11.2010, 22:42     Уравнение с пропущенными цифрами #18
Мне тоже, но что-то над ней думать не хочется... У меня такое впервые)))
xxxfelxxx
0 / 0 / 0
Регистрация: 24.10.2010
Сообщений: 31
28.11.2010, 21:20  [ТС]     Уравнение с пропущенными цифрами #19
Обязательно сообщу результат сдачи, могу даже скриншотами)
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.11.2010, 23:30     Уравнение с пропущенными цифрами
Еще ссылки по теме:

задача с натуральными цифрами - C++
int n, count = 0; cin >> n; // вводим натуральное число, меньше которого наш знаменатель for(int i = 2; i < n; i++) { ...

Замена слов цифрами - C++
Пользователь вводит текст, программа проверяет текст на наличие цифр записанных прописью. Реализация с помощью строк. Помогите с...

Работа с цифрами в числе - C++
Доброго времени суток, гуглил и ненашёл, как если у меня есть например int v=1234, перебрать его по цифре те чтобы было 1 2 3 4 ?

Записать число римскими цифрами - C++
Ребята, прошу помощи, больше некуда обратиться, помогите в написании программы. Для записи римскими цифрами используются символы I, V,...

Слова ONE TWO и тд заменить цифрами 1 2 итд - C++
От 0 до 9. И вообщем то у меня почти все написано, если бы не одно большое НО - по заданию эту программу необходимо реализовать при помощи...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
valeriikozlov
Эксперт C++
4669 / 2495 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
28.11.2010, 23:30     Уравнение с пропущенными цифрами #20
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Рек. функция получилась довольно большая (нужно было предусмотреть много разных вариантов), в процессе написания даже думал о локальном переборе. Но все-таки пока думаю что этот вариант лучше (по крайней мере по времени он точно пройдет). Кстати только сейчас увидел что ограничений по времени нет.
xxxfelxxx, пробуйте сдавать и пишите что получилось.
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
#include <stdio.h>
#include <string.h >
int fl=1, len, a_len, b_len, c_len;
char str[201], a[200], b[200], c[200];
 
void rec(int a1, int b1)
{
    if(fl==0)
        return;
    if(a1>=a_len && a1>=b_len && a1>=c_len)
    {
        if(b1==0)
            fl=0;
        return;
    }
    if(a[a1]=='?' && b[a1]=='?' && c[a1]=='?')
    {
        a[a1]='0'; b[a1]='0';
        if(b1==0)
            c[a1]='0';
        else
            c[a1]='1';
        rec(a1+1, 0);
        if(fl==1)
        {
        a[a1]='5'; b[a1]='5';
        if(b1==0)
            c[a1]='0';
        else
            c[a1]='1';
        rec(a1+1, 1);
        }
    }
    if(a[a1]=='?' && b[a1]=='?' && c[a1]!='?')
    {
        if(c[a1]=='9')
        {
            if(b1==1)
            {
                a[a1]='5'; b[a1]='3';
                rec(a1+1, 0);
                if(fl==1)
                {
                a[a1]='9'; b[a1]='9';
                rec(a1+1, 1);
                }
            }
            else
            {
                a[a1]='5'; b[a1]='3';
                rec(a1+1, 0);
            }
        }
        else
        {
            if(c[a1]=='0' && b1==1)
            {
                a[a1]='8'; b[a1]='1';
                rec(a1+1, 1);
            }
            else
            {
                a[a1]='0'; 
                if(b1==0)
                    b[a1]=c[a1]; 
                else
                    b[a1]=c[a1]+1;
                rec(a1+1, 0);
                if(fl==1)
                {
                a[a1]='9';
                if(b1==0)
                    b[a1]=c[a1]+1;
                else
                    b[a1]=c[a1];
                rec(a1+1, 1);
                }
            }
        }
    }
    if(a[a1]!='?' && b[a1]=='?' && c[a1]!='?')
    {
        if(a[a1]>c[a1])
        {
            if(b1==1)
                b[a1]='0'+9+(c[a1]-a[a1]);
            else
                b[a1]='0'+10+(c[a1]-a[a1]);
            rec(a1+1, 1);
        }
        if(a[a1]<c[a1])
        {
            if(b1==1)
                b[a1]='0'+(c[a1]-a[a1])-1;
            else
                b[a1]='0'+(c[a1]-a[a1]);
            rec(a1+1, 0);
        }
        if(a[a1]==c[a1])
        {
            if(b1==0)
            {
                b[a1]='0';
                rec(a1+1, 0);
            }
            else
            {
                b[a1]='9';
                rec(a1+1, 1);
            }
        }
    }
    if(a[a1]=='?' && b[a1]!='?' && c[a1]!='?')
    {
        if(b[a1]>c[a1])
        {
            if(b1==1)
                a[a1]='0'+9+(c[a1]-b[a1]);
            else
                a[a1]='0'+10+(c[a1]-b[a1]);
            rec(a1+1, 1);
        }
        if(b[a1]<c[a1])
        {
            if(b1==1)
                a[a1]='0'+(c[a1]-b[a1])-1;
            else
                a[a1]='0'+(c[a1]-b[a1]);
            rec(a1+1, 0);
        }
        if(b[a1]==c[a1])
        {
            if(b1==0)
            {
                a[a1]='0';
                rec(a1+1, 0);
            }
            else
            {
                a[a1]='9';
                rec(a1+1, 1);
            }
        }
    }
    if(a[a1]!='?' && b[a1]!='?' && c[a1]!='?')
    {
        if(b1==1)
        {
            if(((int)(a[a1]-'0'+b[a1]-'0')+1)%10==(int)(c[a1]-'0'))
            {
                if((int)(a[a1]-'0'+b[a1]-'0')+1>9)
                    rec(a1+1, 1);
                else
                    rec(a1+1, 0);
            }
        }
        else
        {
            if((int)(a[a1]-'0'+b[a1]-'0')%10==(int)(c[a1]-'0'))
            {
                if((int)(a[a1]-'0'+b[a1]-'0')>9)
                    rec(a1+1, 1);
                else
                    rec(a1+1, 0);
            }
        }
    }
    if(a[a1]!='?' && b[a1]=='?' && c[a1]=='?')
    {
        if(a[a1]=='0')
        {
            if(b1==0)
            {
                b[a1]='0'; c[a1]='0';
                rec(a1+1, 0);
            }
            else
            {
                b[a1]='0'; c[a1]='1';
                rec(a1+1, 0);
                if(fl==1)
                {
                b[a1]='9'; c[a1]='0';
                rec(a1+1, 1);
                }
            }
        }
        else
        {
            if(a[a1]=='9')
            {
                if(b1==1)
                {
                    b[a1]='0'; c[a1]='0';
                    rec(a1+1, 1);
                }
                else
                {
                    b[a1]='1'; c[a1]='0';
                    rec(a1+1, 1);
                    if(fl==1)
                    {
                    b[a1]='0'; c[a1]='0';
                    rec(a1+1, 0);
                    }
                }
            }
            else
            {
                b[a1]='0'; 
                if(b1==0)
                    c[a1]=a[a1];
                else
                    c[a1]=a[a1]+1;
                rec(a1+1, 0);
                if(fl==1)
                {
                b[a1]='9'; 
                if(b1==0)
                    c[a1]=a[a1]-1;
                else
                    c[a1]=a[a1];
                rec(a1+1, 1);
                }
            }
        }
    }
    if(a[a1]=='?' && b[a1]!='?' && c[a1]=='?')
    {
        if(b[a1]=='0')
        {
            if(b1==0)
            {
                a[a1]='0'; c[a1]='0';
                rec(a1+1, 0);
            }
            else
            {
                a[a1]='0'; c[a1]='1';
                rec(a1+1, 0);
                if(fl==1)
                {
                a[a1]='9'; c[a1]='0';
                rec(a1+1, 1);
                }
            }
        }
        else
        {
            if(b[a1]=='9')
            {
                if(b1==1)
                {
                    a[a1]='0'; c[a1]='0';
                    rec(a1+1, 1);
                }
                else
                {
                    a[a1]='1'; c[a1]='0';
                    rec(a1+1, 1);
                    if(fl==1)
                    {
                    a[a1]='0'; c[a1]='0';
                    rec(a1+1, 0);
                    }
                }
            }
            else
            {
                a[a1]='0'; 
                if(b1==0)
                    c[a1]=b[a1];
                else
                    c[a1]=b[a1]+1;
                rec(a1+1, 0);
                if(fl==1)
                {
                a[a1]='9'; 
                if(b1==0)
                    c[a1]=b[a1]-1;
                else
                    c[a1]=b[a1];
                rec(a1+1, 1);
                }
            }
        }
    }
    if(a[a1]!='?' && b[a1]!='?' && c[a1]=='?')
    {
        if((int)(a[a1]-'0'+b[a1]-'0')+b1>9)
        {
            c[a1]='0'+((int)(a[a1]-'0'+b[a1]-'0')+b1)%10;
            rec(a1+1, 1);
        }
        else
        {
            c[a1]='0'+(int)(a[a1]-'0'+b[a1]-'0')+b1;
            rec(a1+1, 0);
        }
    }
 
}
 
int main(){
    int i=0;
    scanf("%s", &str);
    len=(int)strlen(str);
    while(str[i]!='+')
        i++;
    a_len=i;
    while(str[i]!='=')
        i++;
    b_len=i-1-a_len;
    c_len=len-2-a_len-b_len;
    for(i=0; i<200; i++)
    {
        a[i]=b[i]=c[i]='0';
    }
    for(i=a_len-1; i>=0; i--)
        a[a_len-1-i]=str[i];
    for(i=b_len+a_len; i>a_len; i--)
        b[b_len+a_len-i]=str[i];
    for(i=len-1; i>b_len+a_len+1; i--)
        c[len-1-i]=str[i];
    rec(0, 0);
    if(fl==1)
        printf("No");
    else
    {
        for(i=a_len-1; i>=0; i--)
            printf("%c", a[i]);
        printf("+");
        for(i=b_len-1; i>=0; i--)
            printf("%c", b[i]);
        printf("=");
        for(i=c_len-1; i>=0; i--)
            printf("%c", c[i]);
    }
    return 0;
}
Yandex
Объявления
28.11.2010, 23:30     Уравнение с пропущенными цифрами
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru