М
Молодежь
К
Компьютеры-и-электроника
Д
Дом-и-сад
С
Стиль-и-уход-за-собой
П
Праздники-и-традиции
Т
Транспорт
П
Путешествия
С
Семейная-жизнь
Ф
Философия-и-религия
Б
Без категории
М
Мир-работы
Х
Хобби-и-рукоделие
И
Искусство-и-развлечения
В
Взаимоотношения
З
Здоровье
К
Кулинария-и-гостеприимство
Ф
Финансы-и-бизнес
П
Питомцы-и-животные
О
Образование
О
Образование-и-коммуникации
uliana20003
uliana20003
16.11.2021 14:25 •  Информатика

Паскаль авс введите строку, в которой записана сума натуральных чисел, например, "1+25+3". вычислите это выражение.

👇
Ответ:
Savasansa
Savasansa
16.11.2021
Var
  s,sd:string;
  i,n,sum,d,err:integer;
begin
  Writeln('Введите строку для суммирования');
  Read(s);
  sum:=0;
  n:=Length(s);
  if n>0 then begin
    i:=2; sd:=s[1];
    while i<=n do begin
      if s[i]<>'+' then sd:=sd+s[i]
      else begin
        Val(sd,d,err);
        sum:=sum+d;
        sd:=''
      end;
      Inc(i);   
    end;
    Val(sd,d,err);
    sum:=sum+d
  end;
  Writeln('Сумма равна ',sum)
end.

Тестовые примеры:
Введите строку для суммирования
1+25+3
Сумма равна 29

Введите строку для суммирования
143+38+253+62
Сумма равна 496
4,7(53 оценок)
Открыть все ответы
Ответ:
makusolka
makusolka
16.11.2021
Два
Первый, прямой. Просто перебрать возможные варианты (не забывая про инверсию). Нужные суммы: 7, 14, 21, 28, 35
7 выходит при:
1+6,2+5,3+4.
14 выходит при:
1+13,2+12,3+11,4+10,5+9,6+8,7+7
21 выходит при:
1+20,2+19,3+18,4+17,5+16,6+15,7+14,8+13,9+12,10+11
28 выходит при:
8+20,9+19,10+18,11+17,12+16,13+15,14+14
35 выходит при:
15+20,16+19,17+18
При инверсиях кол-во вариантов: 
В первом случае 3*2=6, во втором: 2*6+1=13. Всего: 13+6=19.
В третьем случае 10*2=20
В четвертом случае 2*6+1=13, в пятом: 3*2=6. Всего так же как и в первых двух 19.
Складываем.
19+20+19=58.

Второй, гибкий.
Сумма двух чисел делится на число n, если сумма остатков от деления на n этих чисел равна самому n либо 0 (из теории чисел).
Известно, что у 20-гранника 20 возможных "чисел". 7 мы получаем из 1+6,2+5,3+4 и инверсий этих групп.
Сколько чисел присутствует в 20, при сложении остатков которых мы получим 7? Вот 7+0. Остаток 7 невозможен, поэтому берем просто 0+0. Это у нас 7 и 14 для обоих случаев, т.е. 2*2=4.

Для начала 6+1. Для первого: 6, 13, 20. Для второго: 1, 8, 15. 3*3=9.
Затем 5+2. Для первого 5, 12, 19. Для второго: 2, 9, 16, 3*3=9
Далее 4+3. Для первого: 4, 11, 18. Для второго: 3, 10, 17. 3*3=9
3+4. Первое: те самые 3, 10, 17. Второе, понятно, 4, 11, 18. 3*3=9
2+5: 1) 2, 9, 16, 2) 5, 12, 19. 3*3=9
1+6: 1) 1, 8, 15, 2) 6, 13, 20  3*3=9
0+7 (было уже как 0+0). (вообще, из этого можно было установить закономерность и не высчитывать все).
9*6+4=58.

ответ: 58.
4,4(24 оценок)
Ответ:
kiyash98
kiyash98
16.11.2021
Два
Первый, прямой. Просто перебрать возможные варианты (не забывая про инверсию). Нужные суммы: 7, 14, 21, 28, 35
7 выходит при:
1+6,2+5,3+4.
14 выходит при:
1+13,2+12,3+11,4+10,5+9,6+8,7+7
21 выходит при:
1+20,2+19,3+18,4+17,5+16,6+15,7+14,8+13,9+12,10+11
28 выходит при:
8+20,9+19,10+18,11+17,12+16,13+15,14+14
35 выходит при:
15+20,16+19,17+18
При инверсиях кол-во вариантов: 
В первом случае 3*2=6, во втором: 2*6+1=13. Всего: 13+6=19.
В третьем случае 10*2=20
В четвертом случае 2*6+1=13, в пятом: 3*2=6. Всего так же как и в первых двух 19.
Складываем.
19+20+19=58.

Второй, гибкий.
Сумма двух чисел делится на число n, если сумма остатков от деления на n этих чисел равна самому n либо 0 (из теории чисел).
Известно, что у 20-гранника 20 возможных "чисел". 7 мы получаем из 1+6,2+5,3+4 и инверсий этих групп.
Сколько чисел присутствует в 20, при сложении остатков которых мы получим 7? Вот 7+0. Остаток 7 невозможен, поэтому берем просто 0+0. Это у нас 7 и 14 для обоих случаев, т.е. 2*2=4.

Для начала 6+1. Для первого: 6, 13, 20. Для второго: 1, 8, 15. 3*3=9.
Затем 5+2. Для первого 5, 12, 19. Для второго: 2, 9, 16, 3*3=9
Далее 4+3. Для первого: 4, 11, 18. Для второго: 3, 10, 17. 3*3=9
3+4. Первое: те самые 3, 10, 17. Второе, понятно, 4, 11, 18. 3*3=9
2+5: 1) 2, 9, 16, 2) 5, 12, 19. 3*3=9
1+6: 1) 1, 8, 15, 2) 6, 13, 20  3*3=9
0+7 (было уже как 0+0). (вообще, из этого можно было установить закономерность и не высчитывать все).
9*6+4=58.

ответ: 58.
4,5(27 оценок)
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ