IBM – QA

בראיון של הQA הם בהתחלה אמרו איך היית בודק את פיבונאצ'י

אמרתי שעל מקרי בסיס, הייתי בודק האם אכן מתקיים fib(n) = fib(n-1) + fib n-2
עבור הרבה אנים. צריך לחשוב מתי יש גלישה (כלומר מה קורה עבור מספרים שיותר גדולים ממקס' אינט). כמובן לבדוק מה קורה כשמכניסים קלט לא תקין, למשל מס' שלילי או מס' לא שלם (למרות שהכנסת מס' לא שלם היא טעות קומפ')
אחרי זה הוא שאל אותי איזה מס' הכי גדול אפשר להכניס לפונק' ונתן פונק' שוות ערך
fib(n) = fib (n-1)*1.6.
נראה לי הכוונה היתה לעשות
fib(n) = fib(n-1)*1.6 = fib(n-2)*1.6^2 = … fib(1)*1.6^n
ואז עבור n>32 נקבל מס' שהוא גדול ממקסימום אינט כי 33^1.6 זה מתקרב ל 32^2
משהו כזה, לא בטוח

לבדיקת התאמה

אחרי זה נתן תשאלה הידועה על יש מערך עם מספרים שונים מאחד עד אן הוצאנו אחד איך נמצא איזה, הוצאנו שניים איך נמצא איזה. ואז במערך יש רק ראשוניים ואסור להשתמש בסכימה איך נמצא איזה שניים לא נמצאים – התשובה פה היא להכפיל את כל המספרים. לחלק את 100! במה שיצא ולקבל מס' כלשהו.
מכיוון שכל מס' הוא פירוק יחיד של ראשוניים לא צריך פה שתי משוואות וברגע שנקבל מס' כלשהו ישר נדע איזה 2 ראשוניים מרכיבים אותו.