08-01-2011, 10:17
|
|
|
חבר מתאריך: 11.02.04
הודעות: 16,543
|
|
באמת, אבל באמת שאין לי שמץ מה אתה עושה בקוד שלך..
אבל הרעיון ממש פשוט:
צור מערך בגודל מספר הספרות של המספר הנקלט.
תכניס ספרה ספרה למערך, בכל פעם תבדוק האם הספרה שאתה רוצה להכניס אינה קיימת כבר במערך(במלים אחרות אינה חוזרת על עצמה..)
הנה ממוש אפשרי..
**שים לב שבממוש שלי אני קולט אינטגר, ולכן אני מוגבל מאוד במספר הספרות.. (עד מספרים בגודל 10-9 ספרות), ואם לדייק מספרים עד גודל 1- 31^2
**אם תרצה לעשות זאת עם מספרים ארוכים, פשוט תהיה חייב לקלוט את המספר סיפרה, ספרה..
קוד:
import java.io.*;
import java.util.Vector;
public class targil1 {
public static void main(String[] args) {
String line = null;
int val = 0;
System.out.print("Plz inseet an integer :");
try {
BufferedReader is = new BufferedReader(
new InputStreamReader(System.in));
line = is.readLine();
val = Integer.parseInt(line);
} catch (NumberFormatException ex) {
System.err.println("Not a valid number: " + line);
} catch (IOException e) {
System.err.println("Unexpected IO ERROR: " + e);
}
//finish reading input from user..
Vector<Integer> v = new Vector<Integer>();
boolean b=false;
for(int i=0;i<Integer.toString(val).length() && !b;i++){
Integer nextdigit=val%10;
val=val/10;
b=v.contains(nextdigit);
v.add(nextdigit);
}
System.out.println(!b);//return true if no identical digits, false otherwise ...
}
}
נערך לאחרונה ע"י The_Equivocator בתאריך 08-01-2011 בשעה 10:45.
|