algorytm zamiany liczb rzymskich na dziesietne

Oglądasz archiwalną wersję wątku "algorytm zamiany liczb rzymskich na dziesietne" z forum pl.comp.lang.java



roodee - 14 Lis 2002, 13:34
wlasnie, nie chce klasy bo to sam napisze, tylko sama idee, bo chcialbym to
jak najlepiej zrobic a nie wiem do konca jak sie za to zabrac...



Tig3r - 15 Lis 2002, 06:34

wlasnie, nie chce klasy bo to sam napisze, tylko sama idee, bo chcialbym
to
jak najlepiej zrobic a nie wiem do konca jak sie za to zabrac...



dodajesz segmentami od lewej do prawej. jesli napotkasz cyfre wieksza niz
ostatnio dodałeś to odejmujesz tą ostatnią cyfrę dwukrotnie.

przyklad:

MCMLXXI = 1000 + 100 - 2* 100 +1000 + 50 + 10 + 10 + 1 = 1971

jesli chcesz rowniez badac poprawnosc zapisanych liczb to zauważ, że:
-pojedyncza cyfra występuje maksymalnie 3 razy
-po lewej stronie większej cyfry znajduje się maksymalnie jedna cyfra
mniejsza
-pewnie jeszcze coś, ale mi nie przychodzi teraz nic mądrego do głowy...



r00dee - 15 Lis 2002, 09:10

dodajesz segmentami od lewej do prawej. jesli napotkasz cyfre wieksza niz
ostatnio dodałeś to odejmujesz tą ostatnią cyfrę dwukrotnie.



ok, dzieki
jeszcze pytanie, bo tego nie pamietam. jakie sa symbole rzymskie

I - 1
V - 5
X - 10
L - 50
C - 100
M - 1000

jeszcze cos??? jakies 500 ?? ;)



Rafal Smyka - 15 Lis 2002, 10:08

I - 1
V - 5
X - 10
L - 50
C - 100
M - 1000

jeszcze cos??? jakies 500 ?? ;)



AFAIR, D




Adam Kiezun - 15 Lis 2002, 10:14
http://www.novaroma.org/via_romana/numbers.html

courtesy of google

a.
------------------
eclipse.org
------------------



Abyss - 23 Lis 2002, 15:44
====================================================
====================================================

import java.io.*;
import java.util.*;

public class liczby
 {
        static String czyt_string() throws IOException
        {                
                 BufferedReader buffer = new BufferedReader (new InputStreamReader (System.in));        

                 String l = new String(buffer.readLine());              
                 return l;      
        }      
        static int cyfra(char rzm)
        {              
            int ar = 0;
                if (rzm == 'I') ar=1;
                if (rzm == 'V') ar=5;
                if (rzm == 'X') ar=10;
                if (rzm == 'L') ar=50;
                if (rzm == 'C') ar=100;
                if (rzm == 'D') ar=500;
                if (rzm == 'M') ar=1000;
                return ar;
        }
        static int convert(String liczba_rzm) throws IOException
        {
          int suma = 0;
          liczba_rzm = liczba_rzm + ' ';        
          for(int i=0; i<(liczba_rzm.length()-1); i++)
          {
                if (cyfra(liczba_rzm.charAt(i)) < cyfra(liczba_rzm.charAt(i+1)))
                 suma = suma - cyfra(liczba_rzm.charAt(i));
          else
         suma = suma + cyfra(liczba_rzm.charAt(i));        
          }
          return suma;
        }
        public static void main(String[] args) throws IOException
        {              
                System.out.print("Podaj liczbe w systemie rzymskim: ");      
                String arabska = czyt_string();
        System.out.println("W zapisie dziesietnym jest to: " + convert(arabska));                            
        }
 }

====================================================
====================================================

To by bylo na tyle

Pozdrawiam, Abyss


Generator liczb (pseudo:-)losowych, a liczby ujemne...
poprawieÂłem program ale dlaczego zamiast liczb wyswietla mi same zera???
Czy jest mozliwa dynamiczna zamiana danych w <SELECT> bez odswierzenia strony
zamiana string na jakis inny typ (char)
  • pielegniarki opieka kielce
  • czemu po moim routerze jest getaway a potem
  • kretynskie smsy od roznych reklamodawcow
  • smieszne teksty historie
  • drzewka do kupienia
  • katowice awf fizjoterapia egzaminy
  • java;warcaby
  • tunezyjski aar 1066 1820
  • o symbianie na powaC2 nie czyli
  • Zbieranina wiadomości z for dyskusyjnych || Indeks