CafedeMinou
?>

Ниже приведена программа, записанная на пяти языках программирования. Алгоритмический языкПаскальалпvar s, t: integer;начbeginцел s, treadln(s);Ввод 8readln(t);Ввод сreadln (А);Ввод Аif (s > А) or (t > 12)если 8 > A или t > 12thenто вывод "YESwriteln("YES")иначе вывод "NOelseвсеwriteln("NO")КОНend.БейсикDIM S, t AS INTEGERINPUT SINPUT tINPUT AIF S > A OR t > 12 THENPRINT "YES"ELSEPRINT "NO"ENDIFPythonS = int (input())t = int (input())A = int (input())if (s > А) or (t > 12):print ("YES")else:print ( "NO")CH#include <iostream>using namespace std;int main() {int s, ticin >> S;cin >> t;cin >> А;if (s > А) or (t > 12)cout << "YES" << endl;elsecout << "NO" << endl;return 0;Было проведено 9 запусков программы, при которых в качестве значенийпеременных и t вводились следующие пары чисел:(13, 2); (11, 12); (-12, 12); (2, -2); (-10, -10); (6, -5); (2, 8); (9, 10); (1, 13Укажите наибольшее целое значение параметра А, при котором дляуказанных входных данных программа напечатает «NO» шесть раз.​

Информатика

Ответы

Виктория1690
Запишу сначала за вас условие до конца:
Первая строка ввода содержит два числа A и B, разделенных пробелом (1 ≤ A, B ≤ 10 000 000).Выведите все возможные значения для количества емкостей по 60 литров, которые окажутся заполненными (в том числе одна возможно частично), в порядке возрастания или число −1, если значения A и B противоречат друг другу, то есть они были записаны неверно.

Теперь к вопросам по форме. 
Во-первых, если в условии указаны ограничения на входные данные, им можно верить, проверять, что 1 <= A, B <= 10000000 не обязательно. 
Во-вторых, научитесь пользоваться &&, ||, это позволит не дублировать код. 4 раза написанное else Console.WriteLine("-1"); не очень читать.

А уже теперь по сути.
Ваше условие противоречивости условия |50A - 70B| < 50 нехорошее. Если общий объем колы, например, 141, то A = 3, B = 3, но при этом |50A - 70B| = 60, что больше 50.

Смотрю дальше.
если 50A < 70B, то если 50A не делится на 60, то ответ [(50A - 49)/60] + 1 или [50A/60] + 1 (если это одно и то же, не важно). Это тоже как минимум не очевидно: представим, что [(70B-69)/60] + 1 оказался больше, чем [(50A-49)/60] + 1. Тогда ответ точно неверен.

Какие были бы мои рассуждения:
Поищем, какое могло бы быть общее количество колы. Пусть её N, тогда
50(A - 1) < N <= 50A
70(A - 1) < N <= 70B
Тогда max(50A - 50, 70B - 70) < N <= min(50A, 70B). 
Если max(50A - 50, 70B - 70) >= min(50A, 70B), то решений нет, надо выводить -1. Иначе думаем дальше.
Строгое неравенство иметь что-то не хочется, сделаем из него нестрогое. Если добавлю к левой части 1, то количество 60-литровых ёмкостей явно не поменяется, зато неравенство станет нестрогим. Пусть так и будет, раз ответ не меняется. Только в проверке равенство поменяю на строгое.
max(50A - 50, 70B - 70) + 1 <= N <= min(50A, 70B)
Теперь просто считаем число ёмкостей слева, справа, и выводим все числа от первого до второго.

Поняв всё это, просто превращаем слова в программу.
using System;
class CocaCola
{
  public static void Main (string[] args)
  {
    int A = int.Parse(Console.ReadLine()), 
        B = int.Parse(Console.ReadLine());
    int lowerLimit = Math.Max(50 * A - 50, 70 * B - 70) + 1;
    int upperLimit = Math.Min(50 * A, 70 * B);
    if (lowerLimit > upperLimit)
    {
      Console.Write(-1);
      return;
    }
    for (int i = (int)Math.Ceiling(lowerLimit / 60.0); i <= Math.Ceiling(upperLimit / 60.0); i++)
      Console.Write("{0} ", i);
  }
}
Демидова Красноцветов
Для приведения к СКНФ необходимо построить таблицу истинности, выбрать из нее строки, где функция принимает нулевое значение, а затем записать конъюнкции всех таких строк, где каждым элементом будет дизъюнкция переменных, взятых с инверсией.
Перевожу на простой язык.
Ищем в таблице истинности строки со значением функции, равным 0.
Для каждой такой строки берем переменные (обозначим переменную Р), и там где в колонке для Р записан 0, пишем Р, а где единица, пишем ¬Р.
Все эти Р для одной строки соединяем через ∨ и заключаем в круглые скобки. Так повторяем для каждой нулевой строки. Между скобками пишем ∧

Результаты даны во вложениях.

50 . переведите булевы функции к скнф. а) (х и у) или z; б) ((х или инверсия у) и z) то т
50 . переведите булевы функции к скнф. а) (х и у) или z; б) ((х или инверсия у) и z) то т

Ответить на вопрос

Поделитесь своими знаниями, ответьте на вопрос:

Ниже приведена программа, записанная на пяти языках программирования. Алгоритмический языкПаскальалпvar s, t: integer;начbeginцел s, treadln(s);Ввод 8readln(t);Ввод сreadln (А);Ввод Аif (s > А) or (t > 12)если 8 > A или t > 12thenто вывод "YESwriteln("YES")иначе вывод "NOelseвсеwriteln("NO")КОНend.БейсикDIM S, t AS INTEGERINPUT SINPUT tINPUT AIF S > A OR t > 12 THENPRINT "YES"ELSEPRINT "NO"ENDIFPythonS = int (input())t = int (input())A = int (input())if (s > А) or (t > 12):print ("YES")else:print ( "NO")CH#include <iostream>using namespace std;int main() {int s, ticin >> S;cin >> t;cin >> А;if (s > А) or (t > 12)cout << "YES" << endl;elsecout << "NO" << endl;return 0;Было проведено 9 запусков программы, при которых в качестве значенийпеременных и t вводились следующие пары чисел:(13, 2); (11, 12); (-12, 12); (2, -2); (-10, -10); (6, -5); (2, 8); (9, 10); (1, 13Укажите наибольшее целое значение параметра А, при котором дляуказанных входных данных программа напечатает «NO» шесть раз.​
Ваше имя (никнейм)*
Email*
Комментарий*

Популярные вопросы в разделе

ksoboleva
natalia-shelkovich
alenchik19938823
fialkaflowers77
keti0290103
tenvalerij
Филиппович_Николаевич
zrv85
turovvlad
Mexx9050
Смирнов-Оськина
annaan-dr582
Shtorm-Shoe
ЮлияДаниил520
cheshirsky-kot