На этом форуме отвечают на конкретные вопросы. Фраза «я не понимаю, как решать» — это не вопрос. На вопрос «как решить задачу №X» вас отошлют к материалам сайта kpolyakov.spb.ru. За бессвязный поток слов и неспособность формулировать свои мысли — бан.

Если у вас не сходится ответ на какую-то задачу, пожалуйста сразу представляйте свое «правильное» решение.
Программы "заворачивайте" в тэг [pre2]...[/pre2], при этом сохраняются все отступы и применяется моноширинный шрифт. Если у вас используется сочетание "[i]" для обозначения элемента массива или строки, ставьте пробел после открывающей скобки. Иначе система выделит все дальнейшее курсивом.

Для регистрации на форуме щелкните по ссылке «Вход-регистрация» вверху страницы. В открывшееся окошко «ник» введите свою фамилию на русском языке (например, Иванов). В окошко «пароль» введите придуманный вами пароль, состоящий из латинских букв и цифр. Поставьте галочку в окошке «зарегистрироваться, я новый участник» и нажмите кнопку «ОК».

АвторСообщение



Сообщение: 1
ссылка на сообщение  Отправлено: 12.11.22 11:08. Заголовок: 8.5715


(№ 5715) (Д. Статный) Сергей составляет семизначные десятичные числа, такие что 2-я и 3-я цифры числа представляют собой квадрат первой цифры, а перед последней цифрой числа записан куб последней цифры. Сколько подходящих чисел может составить Сергей?

Первая цифра: 1, 2 или 3 - 3 варианта
Вторая и третья: квадрат первой - по 1 варианту
Последняя цифра: 0, 1, 2 - 3 варианта
Предпоследняя цифра: куб последней - 1 вариант
Количество чисел 3*1*1*10*10*1*3 = 900
или не правильно понял условие?

Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 10 [только новые]


Администратор




Сообщение: 3773
ссылка на сообщение  Отправлено: 12.11.22 11:28. Заголовок: Первая цифра может б..


Первая цифра может быть от 1 до 9. Квадрат от 01 до 81.
Последняя цифра от 0 до 9. Куб от 0 до 729.

___________________________________________________
Имей мужество пользоваться собственным умом. (И. Кант)
Спасибо: 1 
ПрофильЦитата Ответить



Сообщение: 2
ссылка на сообщение  Отправлено: 12.11.22 11:45. Заголовок: спасибо! Неверно пон..


спасибо!
Неверно понял условие

Спасибо: 0 
ПрофильЦитата Ответить



Сообщение: 3
ссылка на сообщение  Отправлено: 12.11.22 16:07. Заголовок: Решение


 
ans = []
for x in range(1000000, 10000000):
xs = list(map(int, str(x)))
if xs[0]**2 == xs[1]*10 + xs[2]:
if 0 <= xs[-1]**3 <= 9 and xs[-1]**3 == xs[-2] or \
9 < xs[-1]**3 < 100 and xs[-1]**3 == xs[-3]*10 + xs[-2] or \
xs[-1]**3 >= 100 and xs[-1]**3 == xs[-4]*100 + xs[-3]*10 + xs[-2]:
ans.append(x)
print(len(ans))


Спасибо: 0 
ПрофильЦитата Ответить





Сообщение: 305
ссылка на сообщение  Отправлено: 03.02.23 04:09. Заголовок: info17 пишет: ans =..


info17 пишет:
 

 цитата:
ans = []
for x in range(1000000, 10000000):
xs = list(map(int, str(x)))
if xs[0]**2 == xs[1]*10 + xs[2]:
if 0 <= xs[-1]**3 <= 9 and xs[-1]**3 == xs[-2] or 9 < xs[-1]**3 < 100 and xs[-1]**3 == xs[-3]*10 + xs[-2] or \
xs[-1]**3 >= 100 and xs[-1]**3 == xs[-4]*100 + xs[-3]*10 + xs[-2]:

ans.append(x)
print(len(ans))

Красиво, но можно еще короче, например так:
 
ans = []
for x in range(1000000, 10000000):
xs = list(map(int, str(x)))
if xs[0]**2 == xs[1]*10 + xs[2]:
if xs[-1]**3 == xs[-2] or xs[-1]**3 == xs[-3]*10 + xs[-2] or xs[-1]**3 == xs[-4]*100 + xs[-3]*10 + xs[-2]:
ans.append(x)
print(len(ans))
Но, все равно, слишком долго выполняется, поэтому можно ускорить выполнение, например, так:
 
kv = kub = 0
for i in range(100,1000):
s = [int(x) for x in str(i)]
if s[0]**2 == s[1]*10 + s[2]:
kv += 1
for i in range(10):
kub += 10**(3-len(str(i**3)))
print(kv*kub)


Спасибо: 0 
ПрофильЦитата Ответить



Не зарегистрирован
ссылка на сообщение  Отправлено: 03.12.22 17:13. Заголовок: Первая цифра может б..


Первая цифра может быть от 1 до 9. Квадрат от 01 до 81.
Последняя цифра от 0 до 9. Куб от 0 до 729.
и как будет записано такое число?

Спасибо: 0 
Цитата Ответить





Сообщение: 302
ссылка на сообщение  Отправлено: 01.02.23 11:04. Заголовок: vin пишет: Первая ц..


vin пишет:

 цитата:
Первая цифра может быть от 1 до 9. Квадрат от 01 до 81.



например, так:

если 1 - 1, то вторая 0, а третья 1
если 1 - 2, то вторая 0, а третья 4
...
если 1 - 9, то вторая 8, а третья 1

Спасибо: 0 
ПрофильЦитата Ответить





Сообщение: 303
ссылка на сообщение  Отправлено: 01.02.23 11:11. Заголовок: vin пишет: Последня..


vin пишет:

 цитата:
Последняя цифра от 0 до 9. Куб от 0 до 729.
и как будет записано такое число?



а куб от 0 до 9 дает значения от 0 до 729

т.е. если на первом месте стоит 5, а на последнем 6, то число будет таким:
5 2 5 2 1 6 6
а, если на первом месте стоит 4, а на последнем 8, то число будет таким:
4 1 6 5 1 2 8

Если расставить все циферки по своим местам, согласно условию, то задачка легко решается и без питона, например, так:



Спасибо: 0 
ПрофильЦитата Ответить





Сообщение: 304
ссылка на сообщение  Отправлено: 01.02.23 11:14. Заголовок: info17 пишет: Перва..


info17 пишет:

 цитата:
Первая цифра: 1, 2 или 3 - 3 варианта


три цифры дают вроде 6 неповторяющихся вариантов:

123
132
213
231
312
321

и 3*3*3 = 27 с повторами
иными словами, количество вариантов зависит не только от количества чисел, но и от количества занимаемых ими позиций!

В данном случае, квадраты чисел от 1 до 9 - составляют уникальные тройки и их будет ровно 9

1. 101
2. 204
3. 309
4. 416
5. 525
6. 636
7. 749
8. 864
9. 981


Спасибо: 0 
ПрофильЦитата Ответить



Не зарегистрирован
ссылка на сообщение  Отправлено: 06.04.23 09:54. Заголовок: тип 8 задание 282


 
from itertools import*
k=0
for i in product('0123456789', repeat=7):
s=''.join(i)
if int(s[0])!=0:
if int(s[-1])<3:
if int(s[0])**2==int(s[1:3]) and int(s[-1])**3==int(s[-2]):
k+=1
elif 2<int(s[-1])<5:
if int(s[0])**2==int(s[1:3]) and int(s[-1])**3==int(s[4:6]):
k+=1
elif 4<int(s[-1]):
if int(s[0])**2==int(s[1:3]) and int(s[-1])**3==int(s[3:6]):
k+=1
print(k)


Спасибо: 0 
ПрофильЦитата Ответить





Сообщение: 390
ссылка на сообщение  Отправлено: 06.04.23 13:04. Заголовок: Inna_sh пишет: fro..


Inna_sh пишет:

 цитата:
from itertools import*
k=0
for i in product('0123456789', repeat=7):
s=''.join(i)
if int(s[0])!=0:
if int(s[-1])<3:
if int(s[0])**2==int(s[1:3]) and int(s[-1])**3==int(s[-2]):
k+=1
elif 2<int(s[-1])<5:
if int(s[0])**2==int(s[1:3]) and int(s[-1])**3==int(s[4:6]):
k+=1
elif 4<int(s[-1]):
if int(s[0])**2==int(s[1:3]) and int(s[-1])**3==int(s[3:6]):

k+=1
print(k)



Интересное решение, но можно и покороче, например, так:

 
from itertools import*
k=0
for i in product('0123456789', repeat=7):
s=''.join(i)
if int(s[0])!=0 and int(s[0])**2==int(s[1:3]) :
if int(s[-1])**3==int(s[-2]) or int(s[-1])**3==int(s[4:6]) or int(s[-1])**3==int(s[3:6]):

k+=1
print(k)


Или, вообще избавиться от длинного условия, например так:

 
from itertools import*
k = 0
for i in product('0123456789', repeat=7):
s=''.join(i)
if s[0] != 0 and int(s[0])**2 == int(s[1:3]):
f = str(int(s[-1])**3)
if s[-4:-1].endswith(f):

k += 1
print(k)


A можно и короче, и быстрее по выполнению, например, так:

 
a = []
for i in range(0,10):
a.append(10**(3 - len(str(i**3))))
print(9*sum(a))



Спасибо: 0 
ПрофильЦитата Ответить
Ответ:
1 2 3 4 5 6 7 8 9
видео с youtube.com картинка из интернета картинка с компьютера ссылка файл с компьютера русская клавиатура транслитератор  цитата  кавычки оффтопик свернутый текст

показывать это сообщение только модераторам
не делать ссылки активными
Имя, пароль:      зарегистрироваться    
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 622
Права: смайлы да, картинки да, шрифты нет, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет