Document
Transcription
Document
י"ב/חשון/תשע"ה מחסנית מספרים -תרגילים נוספים 2 תרגיל 1 כתוב פעולה ,המקבלת מחסנית מלאה במספרים טבעיים וספרה המיוצגת ע"י מספר שלם ומחזירה האם הספרה מופיעה לפחות באחד מהמספרים במחסנית. 1 מחסנית מספרים -תרגילים נוספים 2 תרגיל – 1פתרון -דרך א' (פעולת עזר) )static bool IsDigitInNumber(int num, int digit { //מחזירה האם הספרה מופיעה במספר ;bool flag = false )while (num > 0 && !flag { )if (num % 10 == digit ;flag = true else ;num /= 10 } ;return flag } מחסנית מספרים -תרגילים נוספים 2 2 1 תשע"ה/חשון/י"ב המשך- ' דרך א- – פתרון1 תרגיל )(פעולת עיקרית static bool IsDigitInStack(Stack s, int digit) { מחזירה האם הספרה מופיעה לפחות באחד מהמספרים במחסנית המספרים// הנחה – המחסנית אותחלה// bool flag = false; int x; while (!s.IsEmpty() & !flag) { x = s.Top(); if (IsDigitInNumber2(x, digit)) flag = true; else s.Pop(); } return flag; }3 2 תרגילים נוספים- מחסנית מספרים ' דרך ב- – פתרון1 תרגיל )(פעולת עזר static bool IsDigitInNumber(int num, int digit) { מחזירה האם הספרה מופיעה במספר// while (num > 0) { if (num % 10 == digit) return true; num /= 10; } return false; } 4 2 2 תרגילים נוספים- מחסנית מספרים י"ב/חשון/תשע"ה תרגיל – 1פתרון -דרך ב' -המשך (פעולת עיקרית) )static bool IsDigitInStack(Stack s, int digit { //מחזירה האם הספרה מופיעה לפחות באחד מהמספרים במחסנית המספרים //הנחה – המחסנית אותחלה ;int x ))(while (!s.IsEmpty { ;)(x = s.Top ))if (IsDigitInNumber(x, digit ;return true ;)(s.Pop } ;return false } מחסנית מספרים -תרגילים נוספים 2 5 תרגיל 2 - כתבו פעולה המקבלת מחסנית מלאה במספרים טבעיים וספרה המיוצגת ע"י מספר שלם. הפעולה מחזירה האם הספרה מופיעה במספרי המחסנית לפחות שלוש פעמים (יכול להיות שמופיעה באותו מספר שלוש פעמים או שמופיעה פעם במספר אחד ופעמיים באחר וכדומה). מחסנית מספרים -תרגילים נוספים 2 6 3 תשע"ה/חשון/י"ב – פתרון2 תרגיל )(פעולת עזר static int CountDigitInNumber(int num, int digit) { מחזירה כמה פעמים הספרה מופיעה במספר// int count = 0; while (num > 0) { if (num % 10 == digit) count++; num /= 10; } return count; } 7 2 תרגילים נוספים- מחסנית מספרים המשך- – פתרון2 תרגיל )(פעולת עיקרית static bool IsKCountDigitInStack(Stack s, int digit, int k) { פעמים במספרים במחסנית המספריםK מחזירה האם הספרה מופיעה לפחות// הנחה – המחסנית אותחלה// int x; int countDigit = 0; while (!s.IsEmpty()) { x = s.Top(); countDigit += CountDigitInNumber(x, digit); if (countDigit >= k) return true; s.Pop(); } return false; } 8 4 2 תרגילים נוספים- מחסנית מספרים