В
Все
М
Математика
А
Английский язык
Х
Химия
Э
Экономика
П
Право
И
Информатика
У
Українська мова
Қ
Қазақ тiлi
О
ОБЖ
Н
Немецкий язык
Б
Беларуская мова
У
Українська література
М
Музыка
П
Психология
А
Алгебра
Л
Литература
Б
Биология
М
МХК
О
Окружающий мир
О
Обществознание
И
История
Г
Геометрия
Ф
Французский язык
Ф
Физика
Д
Другие предметы
Р
Русский язык
Г
География
valeria15queen
valeria15queen
29.06.2021 17:07 •  Информатика

решить эту задачу на c++! Максимальное количество фигур

Широко известна задача о расстановке 8-ми ферзей на обычной шахматной доске размером 8 х 8 таким образом, чтобы ни один из ферзей не находился под боем любого другого. Матроскин хочет знать, какое максимальное количество фигур одного вида можно поставить на доске M х N таким образом, чтобы ни одна из фигур не находилась под боем любой другой. Для него эта задача оказалась почему-то сложной и он просит вас ему решить эту проблему.

Причем его интересуют не все случаи. Пешки ему кажутся почему-то довольно неинтересными, да и он по неизвестной причине не любит слонов. Поэтому он хочет только знать, сколько ладей, коней, ферзей или королей, могут быть размещены на одной доске таким образом.

Входные данные
Первая строка ввода содержит количество заданий в тесте T. Далее следует T строк, содержащих новое задание. Каждое задание описано в новой строке и начинается из одного символа (названия фигуры) из следующего набора R, N, Q и K, которые обозначают, соответственно, ладью, коня, ферзя или короля, далее через пробел заданы размеры доски.

Размеры доски не превышают 10, т.е. 4 <= M <= 10 и 4 <= N <= 10.

Выходные данные
Для каждого тестового случая вывести в отдельной строке ответ для заданной фигуры и указанных размеров доски.
Входные данные #1
2
R 6 7
N 8 8
Выходные данные #1
6
32

Показать ответ
Ответ:
Котик2525
Котик2525
17.02.2023 13:58

chislo1 = int(input("Введите число а "))

chislo2 = int(input("Введите число b "))

while chislo1 != 0 and chislo2 != 0:

   if chislo1 > chislo2:

       chislo1 = chislo1 % chislo2

   else:

       chislo2 = chislo2  % chislo1

print(chislo1 + chislo2)

Объяснение:

НОД числа:

берутся два числа. большее число = остаток от деления большего на меньшее. Затем опять большее число (может быть уже второе) = остаток от деления большего на меньшее, и так до тех пор, пока одно из них не станет равно 0. И выводится большее число. В случае если числа равны друг другу, находится остаток от деления второго числа на первое: 0, и выводится первое число. Т.е всё работает.

0,0(0 оценок)
Ответ:
лиза27011971
лиза27011971
20.08.2020 22:46

import codecs #for UTF-8

def file_existence(filename): #check if source file exists

   try:

       f = open(filename, "r")

       f.close()

       print("File '" + filename + "' is opened\n")

       return 0

   except IOError:

       print("File '" + filename + "' is not accessible")

       return 1

def file_size(filename): #lines in source file

   with open(filename) as f:

       for i, l in enumerate(f):

           pass

       return i + 1

 

def main():

   fread_name = "source_data.txt"

   fwrite_name = "result.txt"

   if(file_existence(fread_name)==0):

       F1 = open(fread_name,"r")

       #F2 = open(fwrite_name, "w")

       F2=codecs.open(fwrite_name, "w", "utf-8-sig")

       size=file_size(fread_name)

       source_data=F1.readlines()

           

       x = [float(num.split('=')[1]) for num in source_data] #numbers from string only

       y=[0]*size #empty array for data

       for i in range (0,size):

           if x[i]<-5:

               y[i] = ((((80*x[i]**7)+(61*x[i]**2)+17)**5)+16*x[i]**7)/((((32*x[i]**3)+x[i]**3)**6)-((36*x[i]**2)+54)**4)

           elif x[i]>=-5 and x[i]<1:

               y[i] = (((((24*x[i]**7)+(44*x[i]**2)+93)**5)**(1/2))-(37*x[i]**4) )/( (((31*x[i]**5)+(x[i]**2))**5) + (((26*x[i]**2)-52))**5)

           elif x[i]>=1:

               y[i]=((((45*x[i]**8)+(33*x[i]**2)+12)**4)-(47*x[i]**5))/((((36*x[i]**8)-(x[i]**3))**4)+((91*x[i]-29)**3)**(1/2))

               

       

       for i in range (0,size):

           print(str(i+1)+") "+"X =  "+str(x[i]))

       print("\n")

       for i in range (0,size):

           print("If X="+ str(x[i])+ " Y= " + str(y[i]))

       for i in range (0,size):

           #F2.write("If X="+ str(x[i])+ " Y= " + str(y[i])+"\n")

           F2.write("При x = "+str(x[i])+" значение y = "+str(y[i])+"\n")

       F1.close()

       F2.close()

       print("\nAll data saved in " + fwrite_name)

       input("\nPress any key to exit...")

   else:

       decision=input("\nCreate a stock file 'source_data.txt' for this program with X from -15 to 7? (Y/N): ")

       if decision=="Y" or decision=="y":

           f = open(fread_name, "w")

           for i in range (-15,7):

               f.write('x='+str(i)+"\n")

           f.write('x='+str(i+1)) #without last empty line

           f.close()

           file_existence(fread_name)

           main()

       elif decision=="N" or decision=="n":

           input("Press any key to exit...")

       else:

           print("Wrong input\n")

           main()

if __name__== "__main__":

   main()

Объяснение:

В случае отсутствия source_data.txt программа спрашивает создать ли файл со значениями Х от -15 до 7, т.е. в принципе можно смело запускать программу без файла source_data.txt + программа сама все посчитает и создаст файл result.txt в этой же папке, где и сама программа. Единственное, чего не удалось реализовать - это округление до 3 знаков. Формулы проверены в wolframalpha, но 100% не могу сказать, что все верно, желательно проверить.

P.S. код не самый суперский, но работает почти как надо  :)


Дана функция, вычисляющая значение переменной y в зависимости от переменной x. дан интервал целых чи
Дана функция, вычисляющая значение переменной y в зависимости от переменной x. дан интервал целых чи
Дана функция, вычисляющая значение переменной y в зависимости от переменной x. дан интервал целых чи
0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота