שלום לכולם,
לתכנת המרה של מספר שמקבלים ב INT לטקסט.
לדוגמא: 13472 -> שלוש עשרה אלף ארבע מאות שבעים ושתיים.
אשמח לרעיון לפתרון שאלה זו...
תודה מראש!
לא חושב שיש פתרון של 3 שורות לטובת העניין בגלל מורכבות השפה.
קודם כל צריך לזכור שהתמיכה המקסימלית היא עד סדר גודל מעל ביליון, אין הרבה שכבות שצריך לטפל בהן, לכן אפשר לשמור על פשטות.
הייתי מתחיל ממילוי מערכים שמכילים מילים שמייצגות מספרים כמו "שמונה" ו"אלף", או שעדיף לשמור את זה לסוף כדי לראות מה הסדר וכמה מערכים אתה רוצה לטובת הנוחות.
בגלל שאתה רץ פה על אלפים אז להתחיל עם מודולו 1000 כל פעם ולהפוך את זה לטקסט, לדוגמה 13472 % 1000 זה 472 שאותו אפשר לפרק ל3 פעמים מודולו 10 ולקבל ("ארבע מאות" "שבעים" ושניים ) מהחלק העליון 13 % 1000 = 13 ולכן נקבל ("שלוש עשרה")
מדוגמה זו אנו מבינים מה צריך לאכלס במערכים, מערך לכל המאות, מערך לעשרות, מערך לאחדות, מערך למספרים בין 11 ל 19 וכמובן בדיקה האם מדובר על מספר דו ספרתי בין 11 ל 19 אחרי כל מודולו 1000.
לסיכום, לפרק כל מספר למודולו אלף, בתוכו יש מודולו 100 לטובת חיפוש מספרים דו ספרתיים מיוחדים ומודלו 10 כדי להמיר כל מקרה אחר.
בהצלחה.
אין ספק שהשוק משתנה כל הזמן, אבל דרך הפעולה חייבת להישאר מדויקת ומוכוונת מטרה.
גם כשאתם חושבים שאתם עם האצבע על הדופק, חיפוש עבודה הוא לא המקצוע שלכם - זה המקצוע שלנו.
לבדיקת התאמה
לפני 9 שנים
ע"י: טימור
שלום לכולם,
לתכנת המרה של מספר שמקבלים ב INT לטקסט.
לדוגמא: 13472 -> שלוש עשרה אלף ארבע מאות שבעים ושתיים.
אשמח לרעיון לפתרון שאלה זו...
תודה מראש!
לפני 9 שנים
ע"י: 1_אורח_כללי
שלום לכולם,
לתכנת המרה של מספר שמקבלים ב INT לטקסט.
לדוגמא: 13472 -> שלוש עשרה אלף ארבע מאות שבעים ושתיים.
אשמח לרעיון לפתרון שאלה זו...
תודה מראש!
בהנחה ויש חסם על גודל הקלט,
אפשר ליצור HashMap: Pair(index, digit) -> String
למלא את המפה בסטרינגים המתאימים (מתייחסים לאינדקס i כאינדקס n - i כאשר n הוא אורך הקלט), לדוגמא:
(0,1) -> ״אחד״
(1,2) -> ״עשרים״
(2,4) -> ״ארבע מאות״
(4,5) -> ״חמישים אלף״
(i, 0) -> ״״ לכל i
עבור מספר עם n ספרות, יהיו לנו 10n רשומות במפה.
לעבור על המחרוזת מימין לשמאל כשמתייחסים לאינדקס i כאינדקס n-i ולהוסיף לפלט (map.get(n - i, digit
אשמח להארות / הערות.
בהצלחה
לפני 9 שנים
ע"י: 1_אורח_כללי
שלום לכולם,
לתכנת המרה של מספר שמקבלים ב INT לטקסט.
לדוגמא: 13472 -> שלוש עשרה אלף ארבע מאות שבעים ושתיים.
אשמח לרעיון לפתרון שאלה זו...
תודה מראש!
בהנחה ויש חסם על גודל הקלט,
אפשר ליצור HashMap: Pair(index, digit) -> String
למלא את המפה בסטרינגים המתאימים (מתייחסים לאינדקס i כאינדקס n - i כאשר n הוא אורך הקלט), לדוגמא:
(0,1) -> ״אחד״
(1,2) -> ״עשרים״
(2,4) -> ״ארבע מאות״
(4,5) -> ״חמישים אלף״
(i, 0) -> ״״ לכל i
עבור מספר עם n ספרות, יהיו לנו 10n רשומות במפה.
לעבור על המחרוזת מימין לשמאל כשמתייחסים לאינדקס i כאינדקס n-i ולהוסיף לפלט (map.get(n - i, digit
אשמח להארות / הערות.
בהצלחה
*לעבור על הקלט משמאל לימין.