Logo

רד-בורד: ארכיון

ראשי > תיכנות > אתגרון קטן...

23/08/2004 09:04:13 CoDeR
קצת מוזנח פה, אז נשים אתגרון קטן....
מי שיודע את הפיתרון שיכתוב פה את הקטע קוד, כי זה דבר קטן באמת, כמה שורות מקסימום...

והנה האתגר:
להחליף ערכים של שני מספרים בלי להיעזר במספר שלישי ובלי להעזר בכל זיכרון נוסף שהוא...
אני מכיר 2 דרכים, די בטוח שיש יותר...
לצורך הסטנדרטיות נניח שהמספרים הם במשתנים a,b.
אז יאללה :)
23/08/2004 12:52:17 Eran
a=a*b
b=a/b
a=a/b

האתגר הבא: התוכנית הקצרה ביותר שכותבת את כל האלף בית העברי
23/08/2004 13:06:42 coolz
בעע שיהיה לי קומפיילר ו מקום לתכנת אני אכתוב קוד אבל בעקרון עושים לולאה פשוטה שעוברת ממספר אסקי 128 עד 154...[ההודעה נערכה על-ידי coolz ב-23/08/2004 13:12:23]
23/08/2004 14:47:36 cp77fk4r
קוולז? הסבר את עצמך.


דרך נחמדה:
a=a+b
b=a-b
a=a-b

=)


פייט, אתה מכיר עוד דרך חוץ מהדרכים שאני וערן הצגנו?[ההודעה נערכה על-ידי cp77fk4r ב-23/08/2004 14:48:06]
23/08/2004 16:44:47 CoDeR
ערן האתגר לא הסתיימה..
המטרה היתה לשים כמה שיותר דרכים....
אני מכיר גם אחת עם קסור....
קוד:
a=a^b;
b=a^b;
a=a^b;

למישהו יש עוד רעיונות....
ובקשר לאתגרים חדשים, תשימו בנושא חדש בבקשה... :)
23/08/2004 17:02:46 Eran
a=a/b
b=a*b
a=1/a*b



24/08/2004 13:45:07 Echo
אפשר לעשות הרבה מוניפולציות לשטיות האלה אבל בסוף זה פחות או יותר אותה דרך
והדרך הקצרה ביותר להציג את האב העיברי
קוד:
for c := ’א’ to ’ת’ do
write( c + ’ ’) ;

הקוד הוא אולי בפסקל אבל זה דיי מובן ומילה שלי זה אפשרי הכל לעשות[ההודעה נערכה על-ידי Echo ב-24/08/2004 13:46:35]
24/08/2004 21:12:10 cp77fk4r
חח Echo, שרוט.. מה הקשר עכשיו לא"ב העברי?!

וכן, אתה צודק, יש לזה הרבה דרכים- אבל הכל זה על אותו בסיס, (אם נתחיל בפלוס אז הבא יהיה מינוס, אם זה יהיה כפל, אז חילוק, חזקה- שורש וכו’)
24/08/2004 21:13:53 CoDeR
חוץ מקסור, שאין לו פעולה הפוכה.. :)
24/08/2004 21:15:25 cp77fk4r
אתה מגיב מהר אתה.. ;)
ממ.. יאפ’, צודק.
25/08/2004 14:11:42 Echo
קסור זה הפעולה ההפוכה של עצמו
וא"ב העיברי זה האתגר של ערן
25/08/2004 19:11:19 alon
[ טעות ][ההודעה נערכה על-ידי alon ב-25/08/2004 19:19:52]
26/08/2004 00:19:25 Eran
טוב שני אתגרים הושלמו

אני ניגש להציע אתגר נוסף :)

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

26/08/2004 00:44:45 alon
תראה אפשר פשוט לעשות לולאה ולבדוק את שארית החלוקה של המספר במספרים אחרים. ברגע ששארית חלוקה היא 0 אפשר לפסול את כל הכפולות של המספר המחלקים.[ההודעה נערכה על-ידי alon ב-26/08/2004 00:52:07]
26/08/2004 06:53:01 CoDeR
לרוץ בלולאה עד שורש של המפסר..
ובודק אם שארית החלוקה היא 0....
שיטה שנייה זה לשים מערך בגודל המספר,
שכל תא בו זה סיבית בינארית...
מתחילים כשכל הסיביות הן 1,
ואז עוברים מספרים מ2 עד שורה המספר הדרוש..
וכל פעם קופצים לתא במערך של הכפולה של אותו מספר שבודקים, ומורידים לו את הסיבית מ1 ל0, או אם זה כבר 0 אז ישאר 0...
ככה אחרי שנעבור את המספרים, אם המספר שלנו עדיין יש לו סיבית 1 אז הוא ראשוני...
אני חושב שזה יהיה יותר מהיר מחלוקה לפי מחזורי מעבד, אבל לא בטוח....
29/08/2004 17:32:06 Echo
אולי יותר מהיר אבל דורש הרבה ידע מטמטי שלא לכולם יש
ובדיקה עד השורש זה באמת עדיף רק לזכור שאם השורש הוא שלם אז זה כולל את השורש
מצד שני אם השורש שלם גם ככה המספר לא ראשוני
עמודים: 1