С Новым годом! Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/18: Рейтинг темы: голосов - 18, средняя оценка - 4.67
6 / 5 / 1
Регистрация: 23.04.2020
Сообщений: 3

Задача про бесконечный квадрат и числа в нем

02.11.2020, 01:52. Показов 4367. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Бесконечную таблицу, строки и столбцы которой пронумерованы целыми числами начиная с 1 сверху вниз и слева направо, заполняют целыми числами 1, 2, 3 и т.д. Числа выписываются в соседние клетки по границам квадратов увеличивающегося размера (см. рисунок).
Дано число n, определите номер строки и номер столбца, в котором окажется это число.


Входные данные

Программа получает на вход одно целое число n, 1 ≤ n ≤ 1018.

Выходные данные

Программа должна вывести два целых числа: номер строки и номер столбца, в которых находится число n в этой таблице. Запись выводимых чисел должна содержать только цифры, вывод действительных чисел в ответе считается неверным.


Написал вроде красивый, простенький код на пайтоне, а он работает только до чисел 10**29 где то, ну можете максимум до 10**30, не понимаю почему, ведь принцип одинаковый для всех чисел используется.

Python
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
import math
n = int(input('n = '))
 
i = math.ceil(n**0.5) #находим корень из этого числа округленный в большую сторону. Это значит, что число будет однозначно находиться либо в строке с таким номером либо в столбце с таким номером, либо и в строке и в столбце с таким номером
 
center = i**2-i+1 #находим центральное число этого ряда и этого же столбца. К примеру у 4 ряда и 4 строки центральным будет число 13, у 3 - 7, у 2 - 2 и т.д
 
max_ch = i**2 #находим максимально возможное число в этом ряду и этой строке
min_ch = (i-1)**2+1 #находим минимально возможное число в этом ряду и этой строке
 
if n>center: #если наше число меньше чем центральное, то 
    
    x1=max_ch-n+1 #находим вторую неизвестную координату вычитая из максимального числа в этой строке и столбце наше число и прибавляя в нему единицу
    
    x2=i
 
else: #а если же наше число не меньше чем центральное, то
    
    x1=i
    
    x2=n-min_ch+1 #находим вторую неизвестную координату вычитая из нашего числа минимальное число в этой строке или столбце и прибавляя к нему единицу
 
if i%2==0: #проверяем i на четность, если оно четное, то номером строки будет являться второе неизвестное, а номером столбца первое
    print(x2,x1)
 
else: #иначе же все будет наоборот
    print(x1,x2)
подскажите, пожалуйста, где я мог ошибиться.
Миниатюры
Задача про бесконечный квадрат и числа в нем  
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
02.11.2020, 01:52
Ответы с готовыми решениями:

Задача про Квадрат
Периметр квадрата равен Z(м). Вывести на экран сообщение, превышает ли площадь квадрата заданную величину Q(м2). Большое спасибо

Задача про квадрат
В квадрат со стороной L бросаются наудачу независимо друг от друга 2 квадрата со стороной l<L/2. Стороны всех квадратов параллельны....

Сложная задача про полный квадрат
Есть 9 разных чисел a,b,c,d,e,f,g,h,i. Сумма любых двух разных чисел из данного ряда является полным квадратом. При этом a+b+c=d+e+f=g+h+i...

3
Эксперт Python
 Аватар для dondublon
4652 / 2072 / 366
Регистрация: 17.03.2012
Сообщений: 10,182
Записей в блоге: 6
02.11.2020, 10:38
А вы уверены в правильности формулы?
То есть, если я правильно понял, до 1e29 выдаёт правильный результат, а потом, внизапна, неправильный?
0
6 / 5 / 1
Регистрация: 23.04.2020
Сообщений: 3
02.11.2020, 17:15  [ТС]
да, я поглядел, формула вроде верная. Ошибка в выведении корня из числа функцией math.ceil(n). Почему-то при больших числах она начинает ошибаться и выдавать неправильный результат. Скорее всего тут стоит использовать функцию с википедии по выведению целого квадратного корня из большого числа.
0
Эксперт Python
 Аватар для dondublon
4652 / 2072 / 366
Регистрация: 17.03.2012
Сообщений: 10,182
Записей в блоге: 6
02.11.2020, 18:00
Цитата Сообщение от I_Am_IronMan Посмотреть сообщение
Ошибка в выведении корня из числа функцией math.ceil(n).
Но функция ceil не берёт корень.
Попробуйте math.sqrt.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
02.11.2020, 18:00
Помогаю со студенческими работами здесь

Сложная задача про полный квадрат
Есть 9 разных чисел a,b,c,d,e,f,g,h,i. Сумма любых двух разных чисел из данного ряда является полным квадратом. При этом a+b+c=d+e+f=g+h+i...

Задача про квадрат. Тема методы
"Косой" квадрат. У квадрата ABCD на плоскости известны координаты двух противоположных вершин - точек А и С. Найти координаты точек В и D. ...

Сложная задача про полный квадрат
Есть 9 разных чисел a,b,c,d,e,f,g,h,i. Сумма любых двух разных чисел из данного ряда является полным квадратом. При этом a+b+c=d+e+f=g+h+i...

Геометрическая задача про треугольник и точку в нём
Требуется доказать, что сумма расстояний от произвольной точки внутри остроугольного треугольника до его вершин больше либо равна удвоенной...

Нарисовать квадрат, в нем круг, в круге квадрат, и так далее
Здравствуйте. Требуется помощь. Нужно нарисовать рисунок. Квадрат, в нем круг, в этом круге квадрат, в этом квадрате круг.....и так пока...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru