Автор Тема: Закачка - Задачка  (Прочетена 2117 пъти)

0 Потребители и 1 Гост преглежда(т) тази тема.

Zorko

  • Full Member
  • ***
  • Благодарности
  • -Казани: 33
  • -Получени: 9
  • Публикации: 206
Закачка - Задачка
« -: 17 Ноември 2014, 21:44:13 »
Здравейте,
ще ви дам една задачка, която може да решите на c++, java, php и който си език искате (за предпочитане c++).

Трябва да напишете програма, която като въведем от клавиатурата положително цяло седемцифрено число да може да изчисли сумата от четните цифри на числото.
Примерен вход: 2456983
Примерен изход: 20

Програмата е супер лесна и предполагам, че всеки един от вас може с лекота да я реши. Обаче аз искам да решите задачата като използвате само основни познания, нямате право да използвате if, for, while, и т.н. Мисълта ми е, че трябва да използвате само променливи, изрази, оператор за присвояване, оператор за вход, оператор за изход, типове данни, и математическите оператори. Нямате право да ползвате if и неща по-сложни от изброените, като нямате право да използвате готови функции като substring и т.н.
Не знам какъв е принципа със задачите, ако искате решенията ги публикувайте като отговор или ми ги пращайте на ЛС.

Успех!  :)

jazzman

  • Hero Member
  • *****
  • Благодарности
  • -Казани: 25
  • -Получени: 190
  • Публикации: 3624
Re: Закачка - Задачка
« Отговор #1 -: 18 Ноември 2014, 01:23:16 »
Aз не мога да реша задачата по начина, който искаш. Мисля, че тук трябва да се приложи някакъв алгоритъм а за това се иска математика и теория в нея. Нещото, което ми идва обаче в ума е да обърна числото в стринг, да преброя дължината му, да итерирам всеки един символ от него и да приложа делене по модул или там както му казвате в БГ-то. Ето нещо, което спретнах в firebug (няма проерки и сложнотии)

Код: Javascript
  1. function strInt(int) {
  2.  
  3. var istr = '' + int
  4.  
  5. var sum = 0
  6.  
  7. for(var i = 0; i < istr.length; i = i + 1) {
  8.   if((istr[i]%2) == 0) sum = sum+parseInt(istr[i])
  9.   }
  10.   return sum
  11. }
  12.  
  13. strInt(2456983) // 20
  14.  

Java is to Javascript as fun is to funeral.

http://nau4i.me/forum/index.php/topic,15129.0.html

Zorko

  • Full Member
  • ***
  • Благодарности
  • -Казани: 33
  • -Получени: 9
  • Публикации: 206
Re: Закачка - Задачка
« Отговор #2 -: 18 Ноември 2014, 10:34:18 »
Мисля, че тук трябва да се приложи някакъв алгоритъм а за това се иска математика и теория в нея.
Да точно това ми е идеята, да помислите. Решението на задачата е повече математическо (защото не искам да ползвате функции, цикли, ифове и други по-сложни неща). Трябва да използвате само променливи, изрази, оператор за присвояване, оператор за вход, оператор за изход, типове данни, и математическите оператори. Ако искате може да пусна отговора след няколко дена, ако никой не се е сетил.

xzsa

  • Jr. Member
  • **
  • Благодарности
  • -Казани: 0
  • -Получени: 1
  • Публикации: 66
Re: Закачка - Задачка
« Отговор #3 -: 18 Ноември 2014, 11:04:27 »
Кода е на Python3. За да работи на Python2 input трябва да се замени с raw_input и аргументите слеd print да не са в скоби т.е. print("abc...", n0+n1+...) да стане print "abc...", n0+n1+....

Код: Python
  1. num = input("Въведете 7 цифрово число: ")
  2. n0 = -1*(int(num[0]) % 2 - 1)*int(num[0])
  3. n1 = -1*(int(num[1]) % 2 - 1)*int(num[1])
  4. n2 = -1*(int(num[2]) % 2 - 1)*int(num[2])
  5. n3 = -1*(int(num[3]) % 2 - 1)*int(num[3])
  6. n4 = -1*(int(num[4]) % 2 - 1)*int(num[4])
  7. n5 = -1*(int(num[5]) % 2 - 1)*int(num[5])
  8. n6 = -1*(int(num[6]) % 2 - 1)*int(num[6])
  9. print("Сумата от четните цифри е:", n0+n1+n2+n3+n4+n5+n6)

С цикъл щеше да е по-кратко и да работи за число състоящо се от произволен брой цифри:
Код: Python
  1. num = input("Въведете число: ")
  2. total = 0
  3. for n in num:
  4.     total += -1*(int(n) % 2 - 1)*int(n)
  5. print("Сумата от четните цифри е:", total)

Zorko

  • Full Member
  • ***
  • Благодарности
  • -Казани: 33
  • -Получени: 9
  • Публикации: 206
Re: Закачка - Задачка
« Отговор #4 -: 18 Ноември 2014, 11:10:33 »
Поздравления на xzsa!  :)
Точно така исках да се реши задачата. Браво!

jazzman

  • Hero Member
  • *****
  • Благодарности
  • -Казани: 25
  • -Получени: 190
  • Публикации: 3624
Re: Закачка - Задачка
« Отговор #5 -: 18 Ноември 2014, 14:06:50 »
Поздравления на xzsa!  :)
Точно така исках да се реши задачата. Браво!
Той има слабост към задачките ;) Много време мина от както последно съм виждал този  ник активен в научиМе.
Java is to Javascript as fun is to funeral.

http://nau4i.me/forum/index.php/topic,15129.0.html

Wanderer

  • Full Member
  • ***
  • Благодарности
  • -Казани: 4
  • -Получени: 26
  • Публикации: 196
Re: Закачка - Задачка
« Отговор #6 -: 18 Ноември 2014, 17:26:37 »
А пък аз си мислех, че това е по иновативен начин да издрънчи някой да му напише домашното !  ;D
“You must make the Journey along the road, nobody is able to do it for you!”

Avalanche

  • Administrator
  • Hero Member
  • *****
  • Благодарности
  • -Казани: 65
  • -Получени: 275
  • Публикации: 2602
  • meow
Re: Закачка - Задачка
« Отговор #7 -: 18 Ноември 2014, 19:56:44 »
А пък аз си мислех, че това е по иновативен начин да издрънчи някой да му напише домашното !  ;D
Е това е бъш "задачка-закачка".  ;D
"Компютрите не правят каквото искаме, а каквото им кажем." Ако разбереш какво значи това няма да имаш големи проблеми, нито с никоя ОС, нито език, или софтуер.
Аз не съм програмист между другото!

Zorko

  • Full Member
  • ***
  • Благодарности
  • -Казани: 33
  • -Получени: 9
  • Публикации: 206
Re: Закачка - Задачка
« Отговор #8 -: 18 Ноември 2014, 22:53:03 »
Напротив не ми е домашно тая задача. Ако искате да ви кажа истината...
Един приятел ми писа да му помогна с тая задача. Обаче не са учили if, for, и т.н. Само основни неща.
И аз се сетих как може да се напише с if и for, обаче те не го бяха учили. И ми стана интересна тая задача, дали има как да стане без да се ползва if. И помислих и си пробвах всякакви комбинации на деление с остатък и т.н. и най-накрая се сетих как. Даже я реших по друг начин от xzsa. Аз привеждах числата към 0 и 1 (1-нечетно, 0-четно) и после ги събирах всичките. От сбора на всичките числа изваждах сбора на нечетните и така получавах сбора на четните. Както и да е.
Тази задача ми се стори интересна за решение без if и реших да я пусна тук, защото гледам, че си пускате такива задачки, само че по-сложни.
Все ми е тая, трийте темата и повече няма да пускам такива задачи...

Avalanche

  • Administrator
  • Hero Member
  • *****
  • Благодарности
  • -Казани: 65
  • -Получени: 275
  • Публикации: 2602
  • meow
Re: Закачка - Задачка
« Отговор #9 -: 19 Ноември 2014, 00:22:14 »
Разсърдихме човека значи. Не се пали, само се пошегувахме. Дори и за домашно да е било, задачата е интересна :)
"Компютрите не правят каквото искаме, а каквото им кажем." Ако разбереш какво значи това няма да имаш големи проблеми, нито с никоя ОС, нито език, или софтуер.
Аз не съм програмист между другото!