2.05M
Категория: ПрограммированиеПрограммирование

Программирование — чрезвычайно творческая профессия

1.

«Вы можете не думать,
что программисты — художники,
но программирование — чрезвычайно
творческая профессия.
Это творчество, основанное на логике»
Джон Ромеро

2.

В файле 17.txt содержится последовательность целых чисел, по модулю
не превышающих 100 000.
Определите количество троек элементов последовательности, в
которых только одно число является четырехзначным,
а сумма элементов тройки кратна максимальному элементу
последовательности, оканчивающемуся на 236 в шестеричной системе
счисления.
В ответе запишите два числа:
сначала количество найденных троек,
затем максимальную из сумм элементов таких троек.
В данной задаче под тройкой подразумевается три идущих подряд
элемента последовательности.
Источник:

3.

В файле 17.txt содержится последовательность целых чисел,
по модулю не превышающих 100 000.
f = open('17.txt’)
sp = f.readlines() # sp – список чисел последовательности
n=len(sp)
# n – длина списка последовательности
Числа из файла
считываются как
строки!!!

4.

В файле содержится последовательность целых чисел,
по модулю не превышающих 100 000.
f = open('17.txt’)
sp = f.readlines() # sp – список чисел последовательности
n=len(sp)
# n – длина списка последовательности
print(sp[:5])
['-60001\n', '15825\n', '8234\n', '-28587\n', '-8921\n’, …]
Числа из файла
считываются как
строки!!!

5.

В файле содержится последовательность целых чисел,
по модулю не превышающих 100 000.
f = open('17.txt’)
sp = f.readlines() # sp – список чисел последовательности
n=len(sp)
# n – длина списка последовательности
for i in range(n): #
sp[i]=int(sp[i])
переводим строки в целые числа
[-60001, 15825, 8234, 28587, -8921, …]
Отлично!

6.

Определите количество троек элементов последовательности, в
которых только одно число является четырехзначным
Пусть ch1, ch2, ch3–три идущих подряд элемента последовательности:
ch1=sp[i]
ch2=sp[i+1]
ch3=sp[i+2]
Переводим числа в строки
ch1=str(ch1)
ch2=str(ch2)
ch3=str(ch3)
len(ch1), len(ch2), len(ch3) кол-во символов(разрядов) в строке

7.

Определите количество троек элементов последовательности, в
которых только одно число является четырехзначным
Пусть ch1, ch2, ch3–три идущих подряд элемента последовательности:
ch1=sp[i]
ch2=sp[i+1]
ch3=sp[i+2]
Переводим числа в строки
ch1=str(ch1)
ch2=str(ch2)
ch3=str(ch3)
len(ch1), len(ch2), len(ch3) кол-во символов(разрядов) в строке
а=1234
str(a)=“1234”
len(str(a))=4
Eще одна
проблема!!!
а=-1234
str(a)=“-1234”
len(str(a))=5
Длина ОТРИЦАТЕЛЬНОГО числа на 1 больше!

8.

Определите количество троек элементов последовательности, в
которых только одно число является четырехзначным
Пусть ch1, ch2, ch3–три идущих подряд элемента последовательности:
ch1=sp[i]
ch2=sp[i+1]
ch3=sp[i+2]
Переводим числа в строки
ch1=str(abs(ch1))
ch2=str(abs (ch2))
ch3=str(abs (ch3))
len(ch1), len(ch2), len(ch3) кол-во символов(разрядов) в строке

9.

Определите количество троек элементов последовательности,
в которых только одно число является четырехзначным
for i in range(n-2):
ch1=sp[i]
ch2=sp[i+1]
ch3=sp[i+2]
ch1=str(abs(ch1))
ch2=str(abs(ch2))
ch3=str(abs(ch3))
if len(ch1)==4 and len(ch2)!=4 and len(ch3)!=4 or \
len(ch2)==4 and len(ch1)!=4 and len(ch3)!=4 or \
len(ch3)==4 and len(ch1)!=4 and len(ch2)!=4:
kol_vo= kol_vo +1
# kol_vo – количество троек
Отлично!

10.

Сумма элементов тройки кратна максимальному элементу
последовательности, оканчивающемуся на 236 в шестеричной
системе счисления.
Отлично!
Отлично!
Max23=[]
# Max23 – список элементов с заданным
for i in range(n):
свойством
m23=‘’
# m23 – шестеричное представление
ch=abs(sp[i])
числа из последовательности
while ch!=0:
m23 = str(ch%6) + m23
ch=ch//6
if m23[-2:]=='23':
Max23.append(sp[i])
Max=max(Max23)
# Max – максимальный элемент
из списка

11.

Определите количество троек элементов последовательности, в которых
только одно число является четырехзначным,
а сумма элементов тройки кратна максимальному элементу
последовательности, оканчивающемуся на 236 в шестеричной системе
счисления.
Я понимаю!
ms = []
kol_vo=0
for i in range(n-2):
ch1=sp[i]
ch2=sp[i+1]
ch3=sp[i+2]
symma=ch1+ch2+ch3
if symma%Max==0:
ch1=str(abs(ch1))
ch2=str(abs(ch2))
ch3=str(abs(ch3))
if len(ch1)==4 and len(ch2)!=4 and len(ch3)!=4 or \
len(ch2)==4 and len(ch1)!=4 and len(ch3)!=4 or \
len(ch3)==4 and len(ch1)!=4 and len(ch2)!=4:
kol_vo= kol_vo +1
ms.append(symma)

12.

f = open('17.txt')
sp = f.readlines()
n=len(sp)
for i in range(n):
sp[i]=int(sp[i])
Max23=[]
for i in range(n):
if ((abs(sp[i])-15) % 36 == 0) :
Max23.append(sp[i])
Max=max(Max23)
ms = []
kol_vo=0
for i in range(n-2):
ch1=sp[i]
ch2=sp[i+1]
ch3=sp[i+2]
symma=ch1+ch2+ch3
if symma%Max==0:
ch1=str(abs(ch1))
ch2=str(abs(ch2))
ch3=str(abs(ch3))
if len(ch1)==4 and len(ch2)!=4 and len(ch3)!=4 or \
len(ch2)==4 and len(ch1)!=4 and len(ch3)!=4 or \
len(ch3)==4 and len(ch1)!=4 and len(ch2)!=4:
kol_vo= kol_vo +1
ms.append(symma)
print(kol_vo,ms)
Комментарий
по ссылке
f = open('17.txt')
sp = f.readlines()
n=len(sp)
for i in range(n):
sp[i]=int(sp[i])
Max23=[]
for i in range(n):
m23=''
ch=abs(sp[i])
while ch!=0:
m23 = str(ch%6) + m23
ch=ch//6
if m23[-2:]=='23':
Max23.append(sp[i])
Max=max(Max23)
ms = []
kol_vo=0
for i in range(n-2):
ch1=sp[i]
ch2=sp[i+1]
ch3=sp[i+2]
symma=ch1+ch2+ch3
if symma%Max==0:
ch1=str(abs(ch1))
ch2=str(abs(ch2))
ch3=str(abs(ch3))
if len(ch1)==4 and len(ch2)!=4 and len(ch3)!=4 or \
len(ch2)==4 and len(ch1)!=4 and len(ch3)!=4 or \
len(ch3)==4 and len(ch1)!=4 and len(ch2)!=4:
kol_vo= kol_vo +1
ms.append(symma)
print(kol_vo,ms)

13.

Тройки чисел, удовлетворяющие ПЕРВОМУ условию
Тройки чисел, удовлетворяющие ДВУМ условиям
-83996 68427 15569
-76740 49037 27703
-79387 -67302 46702
-41672 -69549 -88753
-70613 83999 -13386
50471 67260 82243
5858 -53907
-69121 11836 -42702-51938
-51938 5858 -53907
39633 -23724 84078
-93540 -55573 49126 55730
-9097 -44334 53431
59504 -73767
14263
41321
2936
57053 -91855 -65185
42005 -29119 -12886
49822 50592 99560
-79792 96230 83549 -9097
52007 -32282 80262
-28315 -44334
-16720 45035 53431
-66718 -41135 -92121
64990 -95665 30675
55730 41321 2936
-99564 -19216 18793
59504 -73767 14263
-28315 -16720 45035
-89000 -21788 -89186
49822 50592 99560
55730 41321 2936
-57613 24881 -67255
18650 -65423 46773

14.

Тройки чисел, удовлетворяющие ДВУМ условиям
-51938
5858
-53907
55730 41321
-9097 -44334
2936
53431
Количество троек: 3
Максимальная сумма тройки: 99987
Отлично!

15.

Причудливое кружево кода!
Это творчество, основанное
на логике!

16.

Сумма элементов тройки кратна максимальному элементу
последовательности, оканчивающемуся на 236 в шестеричной
системе счисления.
Это как
понимать?
Max23=[]
for i in range(n):
if ((abs(sp[i])-15) % 36 == 0) :
Max23.append(sp[i])
Max=max(Max23)
Десятичная система:
223-23=200
200 кратно 100 =102
Шестеричная система:
2236 – 236 = 2006
2006 кратно 36=62
236 = 1510
English     Русский Правила