עמוד ראשי מירק סקריפטינג מירק סקריפטינג אתגרים [קל] div$ - תוצאות

[קל] div$ - תוצאות

פורום בו יוצגו האתגרים החדשים והפתרונות של האתגרים הישנים. האתגרים נועדו להרחבת האופקים ולמידת דרכים חדשות וחדשניות בשפת המירק סקריפטינג.

Ohad
מנהל האתר
[קל] div$ - תוצאות
הצטרף: 29 יוני 2010, 16:13
הודעות: 111
פורסם: 13 נובמבר 2010, 00:38
תיאור:
האתגר הוא להחזיר שבר פשוט של שבר עשרוני.
השבר הפשוט שמחוזר צריך להיות המצומצם ביותר שאפשר.

תחביר:
$div(N)

מועד אחרון לשליחה: יום שבת, 20/11/2010 בשעה 20:00
סוג: הקוד הקצר ביותר מנצח

איסורים:
  • DLLs
  • Sockets
  • COM Objects
קלט (אין לבדוק אותו):
    הקלט יכיל רק ספרות מ-0 עד 9 (הקלט יכול להיות חיובי, שלילי ואפס)

פלט:
  • הפלט לא יכיל הודעות שגיאה
  • הפלט יהיה רק מספרים, את התו / ואת התו - במידת הצורך (מינוס)

דוגמאות:
$div(0.5) = 1/2
$div(-0.68) = -17/25
$div(5) = 5/1
$div(0) = 0/1
$div(-0.0) = 0/1
$div(-59.) = -59/1
$div(0.924) = 231/250
$div(2.5) = 5/2


חוקים:
  • כל משתמש רשאי להגיד קוד אחד לערוך את הקוד פעם אחת
  • את הפתרונות יש לשלוח אליי בהודעה פרטית בפורום, כאשר בכותרת מצויין שם האתגר (div$)
  • הקוד חיב לתת תוצאות נכונות ברציפות (קוד שיעבוד בפעם הראשונה ולאחר מכן לא יעבוד יותר - יחשב כפסול)
  • מספרים הבתים יקבע ע"י מונה הבתים של Kol או ע"י מונה הבתים של Bluebus112 (שניהם זהים)

תנאי בדיקה:
  • הקוד יבדק בסקשן האליאסים במירק גירסאת 7.15 נקי
  • הקוד צריך להיסגר בצורה חוקית (זאת אומרת שאם פתחתם סוגר מסולסל } אז אתם חייבים לסגור אותו)

פתרונות (לפי סדר השליחה):
Arthas
Ocean
Subby

בהצלחה!

Subby
חבר כבוד
Re: [קל] div$
הצטרף: 06 אוגוסט 2010, 11:45
הודעות: 5
פורסם: 13 נובמבר 2010, 22:43
אני לא יכול לשלוח לך הודעה פרטית...
"אנו מצטערים, אך אינך מורשה להשתמש באפשרות זו. יכול להיות שרק נרשמת לכאן והינך צריך להשתתף יותר כדי להשתמש באפשרות זו. "

=\

Ohad
מנהל האתר
Re: [קל] div$
הצטרף: 29 יוני 2010, 16:13
הודעות: 111
פורסם: 14 נובמבר 2010, 13:22
סודר :)

Ohad
מנהל האתר
Re: [קל] div$
הצטרף: 29 יוני 2010, 16:13
הודעות: 111
פורסם: 18 נובמבר 2010, 16:53
שימו לב, שונה מועד ההגשה ליום שבת ב-8 בערב

הצטרף: 29 יוני 2010, 16:13
הודעות: 111
פורסם: 20 נובמבר 2010, 20:03
יבשים אתם...

מקום ראשון:
Ocean - 65 bytes
div {
  %a = 1
  while (. isin $calc($1*%a)) inc %a
  return $+($v2,/,%a)
}

מקום שני:
Arthas - 188 bytes
div {
  var %m $calc(10^ $len($gettok($1,2,46))),%l $calc($abs($1) * %m),%x %l
  while %x {
    var %w $+($calc(%l / %x),/,$calc(%m / %x))
    if (. !isin %w) return $iif($1 < 0,-) $+ %w
    dec %x
  }
  return 0/1
}

מקום שלישי:
Subby - 199 bytes
g {
  %1 = $1
  %2 = $2
  while 1 {
    %1 = %1 % %2
    if (!%1) return %2
    %2 = %2 % %1
    if (!%2) return %1
  }
}
div {
  %c = 10 ^ $len($token($1,2,46))
  %t = $1 * %c
  %g = $abs($g(%t,%c))
  %t = %t / %g
  %c = %c / %g
  return $+(%t,/,%c)
}


שלי - 63 bytes
div {
  %c = 1
  while (1 \\ $calc($1*%c)) inc %c
  return $+($v2,/,%c)
}


חזור אל אתגרים