אתגר אתגר אתגר!

פIלי

New member
אתגר אתגר אתגר!

כיוון שהפורום מת, וסנדרו מת גם, וב mircx אף אחד לא ענה לי, החלטתי להביא לכאן אתגר (!!!). אין לי כח לכתוב את הפרטים שלו שוב, אז פשוט תקראו כאן. אגב, זאת שאלה מאיזה תחרות תכנות לתלמידי תיכון, והתשובה אמורה להיכתב במקור בסי\פסקל... אבל במירק זה יותר קל. אז יאללא, אל תאכזבו אותי! שלחו לי קוד יותר טוב ממה שאני כתבתי (ב 2 דקות, אפשר לשפר אותו)!
 

פIלי

New member
תתעלמו מהלינק שב"כאן" הראשון

זה בעצם אותו לינק אבל לא משנה...
 

havlaz

New member
כתבתי אותה כאן

ואז שמתי לב שאמרת לשלוח במייל
אין לי בעיה לעשות לך את זה גם בפקסל אם אתה רוצה
 

פIלי

New member
אני לא רוצה

אבל לא הבנתי את הקוד שלך... מסובך... גם לא הצלחתי להשתמש בו
ותנסה לקלוט את המספרים עם $$? אחד אחרי השני עד ל -1... בכל מקרה, מה הסינטקס של האליאס שלך?
/FindNumber k <מספרים>​
?
 

havlaz

New member
אולי לא הבנת

כי ה"חידה" נבנת לשרת שפות תיכנות, כמו פסקל וC, שבהם אתה יכול לקבל משתנה משתנה. כמו שבפסקל יש לך מסך, ואתה מכניס מספר, לוחץ אנטר, ולא מכניס את כל המספרים ואז אנטר, מירק לא מאפשר אפשרות כזאת, לכן פניתי לאליאס, כאשר משתמש רוצה להכניס מספר הוא כותב /FindNumber [num] המספר הראשון ישמש כK, והמספר השני עד שיתקבל -1 יכנסו ל"טבלה". בכל מקרה, לפי בקשתך לעבוד עם $$? שינתי את הקוד. כותבים /FindNumber כדי להפעיל את התוכנית.
FindNumber { unset %a.* set %an $$?="Enter number" set %ai 1 set %find $$?="Enter number" while (%find != -1) { set %a. $+ %Ai %find inc %ai set %find $$?="Enter number" } unset %find set %i 1 set %total $var(%a.*,0) while (%i <= %total) { set %j %i + 1 while (%j <= %total) { if ($calc($var(%a.*,%i) + $var(%a.*,%j)) < %an) { set %find Ok } inc %j } inc %i } if (%find == ok) { echo -ta I find!! } }​
 

פIלי

New member
$$? זאת האפשרות הזאת

$$? מתפקד כמו readln וכמו printf \ cout.
 

imyy

New member
זה פשוט מאוד

תכתבו את זה אתם תשמרו רק את שני המספרים הכי קטנים (וככה לא תצטרכו לסרוק את כל המספרים) ואז פשוט תחברו אותם אם קטן מ-K אז כן אם לא אז לא
 
למעלה