JAVA apua?

Elikkä kertokaapa joku guru tämmönen asia.
Millanen koodi pitäs olla että kun käyttäjä antaa jonkun luvun 0-5000
Sitte se pitäs muuttaa kolminumero järjestelmään eli käyttäen vain lukuja 0,1,2
eli menis jotenki näin
1=1
2=10
3=11
4=12
Tai jotain tonne päin.Elikkä jos joku viittis kertoo miten teen ton koodilla.Tai siis vois tähän laittaa sen koodin pätkän
6729
Äänestä

Muut lukivat myös

Vastaukset 6

Vanhimmat

'Trinääri' systeemillähän nämä luvut esitetään:
1=1 Ok
2=10 = oikeasti 02
3=11 = oikeasti 10
4=12 = oikeasti 11

Jos et ole onnistunut koodauksessa, niin ilmoita Sun klo 18:00 mennessä. Voin tehdä koodin ja lähettää tänne.

Äänestä
  • Joo menee pikkusen yli hilseen tuo homma ku ei oo oikein tota matikka päätä.
    Jos viitit ton koodin pätkän tänne nykästä ni ois hyvä homma.
    Onko tuo trinääri kolminumero järjestelmä?
    Onko muilla nelinumerojärjestelmillä jne. jne omat jokku vastaavat systeemit.
    No jos nykäsisit sen koodin tänne ni oisin erit.kiitollinen ku ei tästä oikein tajua mitään.On tullu jo aika kauan värkättyä tän kanssa.

    Äänestä

  • Jussi kirjoitti:

    Joo menee pikkusen yli hilseen tuo homma ku ei oo oikein tota matikka päätä.
    Jos viitit ton koodin pätkän tänne nykästä ni ois hyvä homma.
    Onko tuo trinääri kolminumero järjestelmä?
    Onko muilla nelinumerojärjestelmillä jne. jne omat jokku vastaavat systeemit.
    No jos nykäsisit sen koodin tänne ni oisin erit.kiitollinen ku ei tästä oikein tajua mitään.On tullu jo aika kauan värkättyä tän kanssa.

    Harjoittele pienillä luvuilla:
    Olkoon trinäärinä esitettävä luku 22

    Hajoita luku 22 kolmen potenssien summiin

    3^3 = 27 > 22 -> liian suuri
    3^2 = 9 < 22 -> kelpaa

    Luvun (3^2) = 9 voi vähentää luvusta 22 kaksi kertaa:
    22 - 2*(3^2) = 4

    Kertoimeksi saadaan siis 2, merkataan kerrointa vaikka luvulla i2 (toinen potenssi, josta tulee tuo 2)

    Jäljellä on luku 4

    Jatketaan hajoittamista..
    (3^1) = 3 < 4 mahtuu kerran.. kertoimeksi i1 saadaan 1

    Vähennetään..
    4 - 1*(3^1) = 1

    (3^0) = 1 joka menee tasan, kertoimeksi i0 saadaan 1

    Luku 22 voidaan esittää trinäärimuodossa seuraavasti:
    111 eli (i2i1i0 - huono esimerkkiluku mut en jaksanut vaihtaa aloituslukua, valitsin sen sattumanvaraisesti:)

    Jos useammalla merkillä esittää tuon luvun esim neljällä se on tietysti 0111, tuo ensimmäinen nollahan me jo pääteltiinkin alussa se oli tuo i3=0. Luku 3^3 oli liian suuri eli se mahtui lukuun 22 nolla kertaa..

    Toivottavasti tästä oli edes jotain apua. En viitsi jäsennellä kirjoittamaani tämä on melko puhdasta ajatuksenvirtatekniikkaa :)

    Voit muuttaa desimaalinumeron mihin tahansa numerojärjestelmään aivan vastaavalla keinolla. Binäärijärjestelmässä vähennät vain 2:n potensseja, oktaaliluvuilla 8:n jne aivan samoin kuin desimaaliluvutkin ovat 10:n potenssien "summia".. luku 765 = 7*100 6*10 5*1 eli 7*(10^2) 6*(10^1) 5*(10^0)

    Puuh onpa tylsää kun näinkin paljon jaksoin.. pitäisiköhän vaihtaa alaa opettajaksi ;)

    Äänestä

Määritä tälläinen summa silmukassa: (3^0)*i0 (3^1)*i1 (3^2)*i2 (3^3)*i3 (3^4)*i4 (3^5)*i5 (3^6)*i6 .. (3^n)*in = kysytty_luku

vinkki: Laske ylhäältä alas ;)

Äänestä

Tollanen koodinpätkä se on. Se on kylläkin c'llä tehty, mutta tuo ydin, eli do loopin sisushan on kai ihan sama 'javaksi'.

Jos annat vaikkapa luvu 11, niin sehän on kolmikantaisessa systeemissä 102, eli 1(*9) + 0(*3) + 2(*1), eli 1(*3^2) + 0(*3^1) + 2(*3^0).


int i_10, i_3=0, kanta=3, apu, pt=1;

printf("
Paas antain luku:");
apu = scanf("%d",&i_10);
printf("
Antamasi luku = %d
",i_10);

do
{
apu = i_10-(i_10/kanta)*kanta;
i_3 += pt*apu;
pt *= 10;
i_10 /= kanta;
} while ( i_10 > 0 );

printf("Antamasi luku kolmikannassa = %d
",i_3);

Äänestä

String luku = Integer.toString(i, 3);

Äänestä

Kommentoi aloitusta


Jussi kirjoitti:

Elikkä kertokaapa joku guru tämmönen asia.
Millanen koodi pitäs olla että kun käyttäjä antaa jonkun luvun 0-5000
Sitte se pitäs muuttaa kolminumero järjestelmään eli käyttäen vain lukuja 0,1,2
eli menis jotenki näin
1=1
2=10
3=11
4=12
Tai jotain tonne päin.Elikkä jos joku viittis kertoo miten teen ton koodilla.Tai siis vois tähän laittaa sen koodin pätkän

Anonyymi
5000

Ilmoita asiaton sisältö

  • Sisältää materiaalia, joka on loukkaavaa, herjaavaa, rasistista, uhkailevaa tai ahdistelevaa.

  • Materiaali sisältää nimiä, yhteystietoja tai muita henkilökohtaisia tietoja. Julkisuuden henkilöistä, julkisissa viroissa toimivista ihmisistä sekä yritysten vastuuhenkilöistä saa keskustella työhön liittyen. Myös yksityiselämään liittyvistä asioista voi keskustella siltä osin, kuin niistä on julkisesti kerrottu.

  • Sisältää lapsille haitallista tai heiltä kiellettyä materiaalia. Seksuaalinen sisältö on sallittua aiheeseen tarkoitetuilla palstoilla, joiden ikäraja on 18 vuotta.

  • Lainvastaista sisältöä voi olla mm. yksityiselämää loukkaavan tiedon levitys, kiihottaminen kansanryhmää vastaan, laiton uhkaaminen, alaikäisiin liittyvä seksuaalinen sisältö/grooming, petokset, identiteettivarkaudet, kunnianloukkaukset ja tekijänoikeusrikkomukset.

  • Sisältö ei liity palstan tai keskusteluketjun aiheeseen.

  • Viesti ei ole suomea tai ruotsia (pl. International Forums), se sisältää mainontaa, se sisältää tekijänoikeuksin suojattua materiaalia, se on massapostitus tai jokin muu syy.

Jaa keskustelu