האם זה נכון

  • פותח הנושא pdib
  • פורסם בתאריך

pdib

New member
האם זה נכון ../images/Emo35.gif

שלום, יש לי פה בחינה ששואלים בה כך: "כתוב אלגוריתם רקורסיבי המקבל מספר, ומחזיר אמת אם כל ספרות המספר זוגיות ושקר אחרת". האלגוריתם שלי: זוגי2 ((m 1.אם m=0 החזר אמת. אחרת, 1.1 x-->m mod 10 1.2 אם x זוגי אזי זוגי2(m div 10) אחרת, 1.2.1 החזר שקר. לי זה נראה נכון, אבל האורך מעורר לי חשד.
 

pdib

New member
יש פה קצת בעיה עם החצים

והסוגריים... תתעלמו
 

עריסטו

Active member
קשה להבין מה כתבת, בכל מקרה

הכוונה היא, כנראה, לפתרון כזה: המספר הוא m, כמו אצלך. האלגוריתם הוא, בפסאודו-קוד
boolean even_digits(m) return {m=0 or [(m mod 10 is even AND even_digits(m div 10)]}​
 

pdib

New member
כתבתי אלגוריתם מילולי ../images/Emo13.gif

ואני לא מבין שפת C, למדנו PASCAL
 

ש ב ו ז

New member
בפסקל

function even_digits?(num:integer):boolean; begin if num<>0 then even_digits?:=(num mod 2) AND (even_digits(num div 10)) else even digits:=true; end;​
בלי ממש לבודד את הספרה ולא ממש ארוך...
 

johnny d

New member
זה נכון,

אתה יכול לכתוב את זה קצר יותר ? (בשפה המוזרה שבה זה כתוב ?)
 
למעלה