
07-12-2009, 03:51
|
 |
|
|
חבר מתאריך: 21.12.04
הודעות: 30,020
|
|
השורה הזו שווה ל num = num / 10
אני מפרק את המספר num לספרות ומשווה כל ספרה עם הספרות האחרות במספר.
כדי לפרק מספר לספרות, אני משתמש ב %10 כדי לבודד את הספרה הימנית ביותר, ואז אני מחלק את המספר ב 10 וכך נפטר מהספרה הזו, וחוזר על החלוקה שוב.
אם קיבלת מספר 123, אז num % 10 שווה ל 3 (שארית החלוקה של 123 ב 10). את המספר הזה אני שומר במשתנה שנקרא "אחדות".
אח"כ אני מחלק ב 10 את המספר ונשאר עם 12, וחוזר על התהליך שוב.
עושה %10 ל 12 ונשאר עם 2 (שארית החלוקה של 12 עם 10) ושומר את המספר הזה במשתנה "עשרות".
מחלק את 12 ב 10 ונשאר עם 1.
ואז את המספר הזה שומר במשתנה "מאות" ומשווה האם "אחדות" שווה ל"עשרות", האם "אחדות" שווה ל"מאות" והאם "עשרות" שווה ל"מאות".
אם אין אף שוויון - אז כל הספרות שונות זו מזו. מספיק שיהיה שוויון אחד, ואז התכנית תגריל שוב מספר בעזרת פונקציית rand ותבדוק שוב האם הספרות שונות זו מזו...
מקווה שהיה יותר ברור =)
|