Odd/Even positions
Здравейте, ще съм много благодарен ако някой успее да ми каже защо... получавам 90/100 точки на тази задача като я практикувам от книгата на основи на Python- гърми на последен опит-ако някой знае и зададените числа и отговора моля да ми каже...от седмици се ядосвам че не мога на нея да направя само 100/100 а днес я пробвах и иначе и....100/100 при нормалните упражнения....Логиката е същата- само форматирането е малко по-различно-в зависимост от това което се иска на двете места.
Кодът от това за книга в програмирането:
from sys import maxsize
n = int(input())
odd_sum = 0
odd_min = maxsize
odd_max = -maxsize
even_sum = 0
even_min = maxsize
even_max = -maxsize
for i in range(0, n):
current_number= float(input())
if i % 2 == 1:
even_sum += current_number
if current_number < even_min:
even_min = current_number
if current_number > even_max:
even_max = current_number
else:
odd_sum += current_number
if current_number < odd_min:
odd_min = current_number
if current_number > odd_max:
odd_max = current_number
if n > 0:
print(f'OddSum={odd_sum:,g},')
if odd_min == maxsize:
print(f'OddMin=No,')
else:
print(f'OddMin={odd_min:,g},')
if odd_max == -maxsize:
print(f'OddMax=No,')
else:
print(f'OddMax={odd_max:,g},')
print(f'EvenSum={even_sum:,g},')
if even_min == maxsize:
print(f'EvenMin=No,')
else:
print(f'EvenMin={even_min:,g},')
if even_max == -maxsize:
print(f'EvenMax=No')
else:
print(f'EvenMax={even_max:,g}')
elif n==0:
print(f"""OddSum=0,
OddMin=No,
OddMax=No,
EvenSum=0,
EvenMin=No,
EvenMax=No""")
else:
print(f'OddSum={odd_sum:,g},')
print(f'OddMin={odd_min},')
print(f'OddMax={odd_max},')
print(f'EvenSum={even_sum:},')
print(f'EvenMin={even_min:},')
print(f'EvenMax={even_max}')
Код от практиката/което от вдругиден ще бъде competition/:
from sys import maxsize
n = int(input())
odd_sum = 0
odd_min = maxsize
odd_max = -maxsize
even_sum = 0
even_min = maxsize
even_max = -maxsize
for i in range(0, n):
current_number= float(input())
if i % 2 == 1:
even_sum += current_number
if current_number < even_min:
even_min = current_number
if current_number > even_max:
even_max = current_number
else:
odd_sum += current_number
if current_number < odd_min:
odd_min = current_number
if current_number > odd_max:
odd_max = current_number
if n > 0:
print(f'OddSum={odd_sum:.2f},')
if odd_min == maxsize:
print(f'OddMin=No,')
else:
print(f'OddMin={odd_min:.2f},')
if odd_max == -maxsize:
print(f'OddMax=No,')
else:
print(f'OddMax={odd_max:.2f},')
print(f'EvenSum={even_sum:.2f},')
if even_min == maxsize:
print(f'EvenMin=No,')
else:
print(f'EvenMin={even_min:.2f},')
if even_max == -maxsize:
print(f'EvenMax=No')
else:
print(f'EvenMax={even_max:.2f}')
elif n==0:
print(f"""OddSum=0.00,
OddMin=No,
OddMax=No,
EvenSum=0.00,
EvenMin=No,
EvenMax=No""")
else:
print(f'OddSum={odd_sum:,g},')
print(f'OddMin={odd_min},')
print(f'OddMax={odd_max},')
print(f'EvenSum={even_sum:},')
print(f'EvenMin={even_min:},')
print(f'EvenMax={even_max}')
И от 1 и от 0 съм броил-както сам каза променям логиката само-100/100 имам на задачата, но се чудя защо ми гърми на книгата на последния опит...просто качих последно каквото опитах ако не е от 1
Здравей,
ето ти един код като за книгата, идеята е във форматирането. Не претендирам, че съм го решил оптимално, но поне е някакво решение
Поздрави :)
мерси, не се бях сетил с една функция да го направя :)
Здравей,
Порових се в твоята задача, в кода има бая "правописни" грешки като го копнах, пробвах да ги оправя, но пак излизаше нещо.
Като решение, твоето, много прилича на моето:
Само че при теб финала ми е малко каша...след като се излезе от цикъла. И не можах да схвана логиката на принтовете за да ги поправя... Затова взех твоята "горна" част (натъкмих я малко, понеже аз импортвам целият "сис") и прибавих моите принтове.
Работи на 100%