הוסטס - פורום אחסון האתרים הגדול בישראל

הוסטס - פורום אחסון האתרים הגדול בישראל (https://hosts.co.il/forums/index.php)
-   פורום תיכנות (https://hosts.co.il/forums/forumdisplay.php?f=14)
-   -   עזרה ב Java. (https://hosts.co.il/forums/showthread.php?t=60471)

e.N.m 28-02-08 16:55

עזרה ב Java.
 
שלום :)

אוקיי, יש לי תרגיל אחד שאני לא מצליח לפתור לכן אני צריך את עזרתכם.
השאלה היא:

פתח ויישם אלגוריתם המקבל כקלט מספר שלם וספרה. אם הספרה לא מופיעה במספר יש להוסיף אותה למספר כספרת האחדות. האלגוריתם יציג כפלט את המספר החדש.

טוב, אז אני צריך רק איזה כיוון או משהו איך לעשות את הבדיקה של המספר והספרה בלבד. המספר לא ידוע אם הוא דו / תלת ספרתי וכו'... חשבתי לשחק קצת עם ההגבלה של int אבל זה דיי צולע, חייבת להיות דרך.

ניסיתי While / do-While לא יצא לי.
בכל מקרה, תודה לעוזרים,
יום טוב.

luckyguy 28-02-08 17:01

1. תמצא את הפקודה שבודקת אורך של מספר.
2. תפריד את הספרות למשתנים שונים.
3. במידה והנתון שווה לאחת מהספרות, הפלט שווה למספר המקורי * 10 + הקלט

e.N.m 28-02-08 17:03

ציטוט:

נכתב במקור על ידי luckyguy (פרסם 612463)
1. תמצא את הפקודה שבודקת אורך של מספר.
2. תפריד את הספרות למשתנים שונים.
3. במידה והנתון שווה לאחת מהספרות, הפלט שווה למספר המקורי * 10 + הקלט

דבר ראשון תודה.
דבר שני, העניין הוא שאני מחפש לעשות את זה בלי שום פקודה ואני בטוח שאפשר בלי.
דבר שלישי, "3" - זה ידוע.

luckyguy 28-02-08 17:22

אתה יכול לבדוק אם 1000/X גדול מ1 או 100/X גדול מ1 ולשחק עם זה עד שתבין את אורך המספר.

Meir 28-02-08 17:27

פשוט מאוד:

קוד:

        int num = 134, tofind = 3, index = -1, tmp = num;
        for (int i = 0; num != 0; i++)
        {
            if (num%10 == tofind) index = 1;
            num /= 10;
        }
        if (index == 1)
        {
            System.out.print("Result: " + (tmp*10+tofind));
        }


meshuga 28-02-08 19:59

בניתי לך בדרך ה"מסורתית" שמלמדים:
קוד:

public class Hosts
{
        public static int tryThis(int num,int x){
                boolean is=false;
                int t=num;
                while(t>0 && !is){
                        if(t%10==x)
                                is=true;
                        t/=10;
                }
                if(!is)
                        num=num*10+x;
                return num;
        }
        public static void main(String[] args){
                System.out.println(tryThis(12345,5));
                System.out.println(tryThis(12345,6));
        }
}

אם יש צורך בהסבר...תגיד לי..אני יסביר...

e.N.m 29-02-08 07:02

תודה רבה לשניכם :-) אבל, השיטה הראשונה מצאה חן בעייני יותר.
אפשר לנעול.


כל הזמנים הם GMT +2. הזמן כעת הוא 04:11.

מופעל באמצעות VBulletin גרסה 3.8.6
כל הזכויות שמורות ©
כל הזכויות שמורות לסולל יבוא ורשתות (1997) בע"מ