Studium, Ausbildung und Beruf
 StudiumHome   FAQFAQ   RegelnRegeln   SuchenSuchen    RegistrierenRegistrieren   LoginLogin

Dezimal -> römischer Zahl
Neues Thema eröffnen   Neue Antwort erstellen
Foren-Übersicht -> Informatik-Forum -> Dezimal -> römischer Zahl
 
Autor Nachricht
gosua
Newbie
Benutzer-Profile anzeigen
Newbie


Anmeldungsdatum: 02.02.2009
Beiträge: 17

BeitragVerfasst am: 17 Apr 2010 - 19:34:52    Titel: Dezimal -> römischer Zahl

Hey, wir sollen eine eingelesene dezimal Zahl, die <= als m ist(m=3888) ist, als Zahl bestehend aus römischen Ziffern ausgeben(Inklusive der Additions-/Subtraktionsregel).

Mein Porblem ist, mir fehlt komplett der Ansatz. Ich habe mir schon überlegt, dass ganze so zu lösen:

123 = 1*10^2 + 2*10^1 + 3*10^0
=====> C + XX + III

Bei 444 würde das aber auch schon leider nicht mehr funktionieren^^
Wie ich allerdings das mit den Additions-/Subtraktionsregeln machen soll, weiß ich nicht :X.
Über einen kleinen Denkanstoß würde ich mich freuen.
Kleinhilbert
Junior Member
Benutzer-Profile anzeigen
Junior Member


Anmeldungsdatum: 04.11.2006
Beiträge: 81

BeitragVerfasst am: 18 Apr 2010 - 15:21:04    Titel:

Hallo gosua!

Code:

input: zahl
output: erg
if (zahl >= 3000)
  3000 -> erg = erg + "MMM"
  zahl = zahl - 3000
end 
if (zahl >= 2000)
  2000 -> erg = erg + "MM"
  zahl = zahl - 2000
end 
if (zahl >= 1000)
  1000 -> erg = erg + "M"
  zahl = zahl - 1000
end
...



Viele Grüße
Ronald
gosua
Newbie
Benutzer-Profile anzeigen
Newbie


Anmeldungsdatum: 02.02.2009
Beiträge: 17

BeitragVerfasst am: 19 Apr 2010 - 20:00:09    Titel:

Danke für deine Hilfe, habe es heute etwas anders gelöst.

Code:


import java.util.*;

public class DezimalZuRoemisch {



   public static void main(String[] args) {

      

      

      Scanner in = new Scanner(System.in);

      int eingabe, ergebnis;

      String roman= "";

      String[] roemisch = {"M", "CM", "D", "CD", "C", "XC", "L", "LX", "X", "IX", "V", "IV", "I"};

      int[] dezimal = {1000, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1};

      

      System.out.print("Bitte eine Natuerliche Zahl eingeben(1-3999): ");

      eingabe=in.nextInt();

      

      //ist eingabe im erlaubten bereich?

      if(eingabe>0 && eingabe<=3999){

      //alle zahlen im array testen

      for (int i=0; i<=12; i++){

         if(eingabe>=dezimal[i]){            //ist eingabe >=der zahl im array dezimal am index i?      

            while(eingabe>=dezimal[i]){         //ziehe solange die zahl am index i von der eingabe ab, bis sie nimmer größer ist

               eingabe=eingabe-dezimal[i];      

               System.out.print(roemisch[i]);   //gebe den String im array roemisch am index i aus.

            }

         }

      }

      }

      else{

         System.out.println(eingabe+" ist Keine gueltige Eingabe... ");

      }

      

      

      

   }

}
Beiträge der letzten Zeit anzeigen:   
Foren-Übersicht -> Informatik-Forum -> Dezimal -> römischer Zahl
Neues Thema eröffnen   Neue Antwort erstellen Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

Chat :: Nachrichten:: Lexikon :: Bücher :: Impressum