profile
Размещено 5 лет назад по предмету Информатика от buterigo

Желательно c++ или c#. А так не важно. Легенда гласит, что Карл Фридрих Гаусс, учась в школе, смог быстро посчитать сумму целых чисел от 1 до 100, заметив, что 1 + 100 = 2 + 99 = … = 50 + 51. Теперь решите задачу посложнее: можно ли перед каждым из чисел от 1 до N расставить знаки «+» или «–» так, чтобы сумма получившихся чисел была равна 0? Например, для N = 3 сумма –1 –2 +3 будет равна 0, а для N = 2 этого сделать нельзя. Программа получает на вход целое неотрицательное число N, не превосходящее 10в(5)степени. Программа должна вывести последовательность из N символов «+» или «–», соответствующих знакам, которые нужно расставить перед числами от 1 до N так, чтобы сумма получившихся чисел была равна 0. Если задача имеет несколько решений, нужно вывести один (лобой) ответ. Если задача не имеет решения для данного N, нужно вывести одно слово «IMPOSSIBLE». Ввод: 3 2 Вывод: --+ IMPOSSIBLE Примечание: Правильным ответом будет также «++-»

  1. Ответ на вопрос
    Ответ на вопрос дан suvorovez007

    Вот тебе в паскале


    program ryad_chisel;

    var N, t:integer;

    begin

    read(N);

    t:=(N*(N+1))div 2;

    if t mod 2 =1 then writeln('IMPOSSIBLE')

    else begin

         if N mod 2 =0 then begin

                            t:=N div 4;

                            repeat

                            write('+');

                            t:=t-1;

                            until t=0;

                            t:=N div 2;

                            repeat

                            write('-');

                            t:=t-1;

                            until t=0;

                            t:=N div 4;

                            repeat

                            write('+');

                            t:=t-1;

                            until t=0;

                            end

         else begin

              t:=((N+1) div 4)-1;

              repeat

              write('+');

              t:=t-1;

              until t=0;

              t:=((N-1) div 2)+1;

              repeat

              write('-');

              t:=t-1;

              until t=0;

              t:=(N+1) div 4;

              repeat

              write('+');

              t:=t-1;

              until t=0;

              end

         end    

    end.

    1. Ответ на вопрос
      Ответ на вопрос дан SayMyNamePlease
      не работает на цифру 3...(
    2. Ответ на вопрос
      Ответ на вопрос дан anastecia
      РеАлЬнО
Не тот ответ на вопрос, который вам нужен?
Найди верный ответ
Самые новые вопросы
tegysigalpa2012
Русский язык - 5 лет назад

Помогите решить тест по русскому языку тест по русскому языку «местоимение. разряды местоимений» для 6 класса 1. укажите личное местоимение: 1) некто 2) вас 3) ни с кем 4) собой 2. укажите относительное местоимение: 1) кто-либо 2) некоторый 3) кто 4) нам 3. укажите вопросительное местоимение: 1) кем-нибудь 2) кем 3) себе 4) никакой 4. укажите определительное местоимение: 1) наш 2) который 3) некий 4) каждый 5. укажите возвратное местоимение: 1) свой 2) чей 3) сам 4) себя 6. найдите указательное местоимение: 1) твой 2) какой 3) тот 4) их 7. найдите притяжательное местоимение: 1) самый 2) моего 3) иной 4) ничей 8. укажите неопределённое местоимение: 1) весь 2) какой-нибудь 3) любой 4) этот 9. укажите вопросительное местоимение: 1) сколько 2) кое-что 3) она 4) нами 10. в каком варианте ответа выделенное слово является притяжательным местоимением? 1) увидел их 2) её нет дома 3) её тетрадь 4) их не спросили

Информация

Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.