Форум программистов, компьютерный форум, киберфорум
PascalABC.NET
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/6: Рейтинг темы: голосов - 6, средняя оценка - 4.50
2 / 2 / 0
Регистрация: 19.01.2013
Сообщений: 15
1

Задача A + B = C

19.01.2013, 11:23. Показов 1230. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Пусть председатель жюри выбрал число C, запись которого состоит из n десятичных цифр и не начинается с нуля. Теперь он хочет подобрать такие целые положительные числа A и B, чтобы их сумма была равна C, и запись каждого из них также состояла из n десятичных цифр и не начиналась с нуля. В дополнение к этому председатель жюри старается подобрать такие числа A и B, чтобы каждое из них было красивым. Красивым считается число, запись которого не содержит двух одинаковых подряд идущих цифр. Например, число 1272 считается красивым, а 1227 - нет.
Требуется написать программу, которая для заданного натурального числа C вычисляет количество пар красивых положительных чисел A и B, сума которых равна C. Поскольку количество пар красивых чисел может быть большим, необходимо вывести остаток от деления этого количества на число 109+7.
C не превышает 10 000
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
19.01.2013, 11:23
Ответы с готовыми решениями:

Задача: В некотором государстве ввели компьютерный паспорт гражданина.(задача)
Доброго времени суток,форумчане. Хотелось бы попросить помощи в решении одной задачи от умных...

Задача на k-тую цифру последовательности, задача на схему Горнера.
Ну, собственно опять прошу помощи... Задача 1: Определить k-тую цифру последовательности...

Задача на перебор вариантов. Задача Л.Эйлера. Про чиновника
Задача Л.Эйлера. Некий чиновник купил лошадей и быков на сумму 1770 талеров. За каждую лошадь он...

Задача на файл и задача на создание очереди
1 Дан символьный файл, содержащий, по крайней мере, один символ пробела. Удалить из файла все...

4
2 / 2 / 0
Регистрация: 19.01.2013
Сообщений: 15
20.01.2013, 12:23  [ТС] 2
подкиньте хотя бы идеи. Очень хочется решить)
0
1 / 1 / 3
Регистрация: 30.03.2011
Сообщений: 30
22.01.2013, 13:57 3
Pascal
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
const c=99;
var a,b,schet:longint;
    i,j:integer;
    sa,sb,sc:string;
 
function kras(x1,x2:string;t:integer):boolean;
var i1:integer;
    y1,y2:boolean;
begin
kras:=true;
y1:=true;
y2:=true;
 
for i1:= 1 to t-1 do
begin
if x1[i1]=x1[i1+1] then begin y1:=false; break; end;
end; 
 
for i1:= 1 to t-1 do
begin
if x2[i1]=x2[i1+1] then begin y2:=false; break; end;
end;
 
if (y1=false) or (y2=false) then kras:=false ;
end;
 
begin
if c mod 2 <>0 then 
                  begin
                  a:=c div 2;
                  b:=a+1;
                  end
                  else
                  begin
                  a:=c div 2;
                  b:=a;
                  end;
                  
str(a,sa); 
str(b,sb);  
str(c,sc);   
 
while (length(sa)=length(sc)) and (length(sb)=length(sc)) do
begin
if kras(sa,sb,length(sc)) then
            begin
            if a+b=c then
                          begin
                          writeln(a,'  ',b);  //если число (с) большое лучше сделать комментарием
                          writeln(b,'  ',a);
                          inc(schet,2);
                          end;
            end;
            dec(a);
            inc(b);
str(a,sa); 
str(b,sb);  
str(c,sc);   
end;
writeln(schet);                
end.
Задача с областной олимпиады? если да то ты из какой области?

кстати как надо она не работает(с большими числами я не знаю как делать)... но на олимпиаде мне за неё 50 баллов дали =)
0
11 / 11 / 7
Регистрация: 05.11.2011
Сообщений: 87
22.01.2013, 15:57 4
мне 60 я с Челябинской
0
Платежеспособный зверь
8926 / 4354 / 1642
Регистрация: 28.10.2009
Сообщений: 11,568
23.01.2013, 22:15 5
Идея та же, но покороче и без функций:
Pascal
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
var
c,a,b,d,k,i,j,kol:longint;
st1,st2:string;
f1,f2:integer;
begin
readln(c);
d:=c;
k:=1;
while d>9 do
begin
d:=d div 10;
inc(k);
end;
a:=1;
for i:=1 to k-1 do
a:=a*10;
for i:=a to c-a do
begin
f1:=0;
str(i,st1);
for j:=2 to length(st1)do
if st1[j]=st1[j-1]then f1:=1;
if f1=0 then
begin
b:=c-i;
f2:=0;
str(b,st2);
for j:=2 to length(st2)do
if st2[j]=st2[j-1]then f2:=1;
if f2=0 then inc(kol);
end;
if kol>1000000007 then kol:=kol mod 1000000007;
f1:=0;
f2:=0;
end;
writeln(kol);
end.
Из циклов проверки красивости можно было сделать досрочный выход, но это не важно.
0
23.01.2013, 22:15
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
23.01.2013, 22:15
Помогаю со студенческими работами здесь

Первая смешанная задача для волнового уравнения на отрезке (задача о колебаниях ограниченной струны) методом Фурье
Решить первую смешанную задачу для волнового уравнения на отрезке (задача о колебаниях ограниченной...

Задача о размещении весов по ящикам (задача о рюкзаках)
Есть упорядоченный по невозрастанию набор весов предметов w1..wn, которые необходимо распределить...

Задача Дам или задача Восьми
помогите найти ошибку в алгоритме. не находит ответ подозреваю ошибку в k, i, j package...

Задача о размене -задача динамического программирования?
Является ли задача о размене суммы задачей динамического программирования? Мне кажется нет. хотя...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru