Forum » Programiranje » [Naloga][C++] - Hišne številke
[Naloga][C++] - Hišne številke
jernejf ::
LP!
Pripravljam se za kolokvij in imam težave pri eni nalogi. Upam da mi malo namignete.
Text-
Profesor Modrinjak stanuje v razmeroma dolgi ulici. Hišna številka hiše v kateri je profesor doma, je tromestna in ima zanimivo lastnost, da je vsota vseh hišnih številk v ulici, ki so manjše od nje, enaka vsoti večjih. Določi hišno številko in število hiš v ulici!
In še kaj sem jaz ustvarjal:
Vem približno kje je napaka---nisem določil da gre i do n-ja , j pa od n-ja do konca-(dokler pač vsoti nebosta enaki)
Prosim za mali namig
LP!
Pripravljam se za kolokvij in imam težave pri eni nalogi. Upam da mi malo namignete.
Text-
Profesor Modrinjak stanuje v razmeroma dolgi ulici. Hišna številka hiše v kateri je profesor doma, je tromestna in ima zanimivo lastnost, da je vsota vseh hišnih številk v ulici, ki so manjše od nje, enaka vsoti večjih. Določi hišno številko in število hiš v ulici!
In še kaj sem jaz ustvarjal:
int main() { int n; int i = 0; int j ; int vsotai = 0; int vsotaj = 0; do{ i++; j++; vsotai += i; vsotaj += j; }while(vsotai != vsotaj); cout n endl; system("PAUSE"); return 0; }
Vem približno kje je napaka---nisem določil da gre i do n-ja , j pa od n-ja do konca-(dokler pač vsoti nebosta enaki)
Prosim za mali namig
LP!
- spremenilo: CCfly ()
Fury ::
Brute force lahko tko naredis da zacnes sestevat pri 100 (ker ves, da je 3mestna stevilka), pol pa za vsakic ko povecas spodnjo vsoto rekalkuliras zgornjo dokler ne presezes ali izenacis spodnje. Ce presezes potem ni valid, ce je enaka si jo nasel. Pazi da preskocis hiso od profesorja :) ker pise vsota manjsih in vsota vecjih - torej ne stejes profesorjeve v nobeno vsoto.
jernejf ::
Ja saj tako da sem sešteval od 100 naprej sem že tudi poskusil. Takrat sem samo prištel vsoto do 100 (4950).
"vsakic ko povecas spodnjo vsoto rekalkuliras zgornjo"
Ta del mi ni čisto jasen(kaj sploh pomeni rekalkolirati)
a ni to takol:
vsotai += i;
vsotaj += j;
}while(vsotai != vsotaj);
Hvala še enkrat
"vsakic ko povecas spodnjo vsoto rekalkuliras zgornjo"
Ta del mi ni čisto jasen(kaj sploh pomeni rekalkolirati)
a ni to takol:
vsotai += i;
vsotaj += j;
}while(vsotai != vsotaj);
Hvala še enkrat
Alpheus ::
No jaz sem se tudi malo poigral s tem in prišel do naslednjega zaključka:
Hišna št. profesorja: 204, št. hiš: 288. Spisal sem pa program takole:
V bistvu je tole brute-force metoda, ki jo je Fury omenil. Če hočeš matematično rešitev, je tudi precej enostavno. Nasvet: aritmetična vrsta (sicer boš moral v kodi kvadratno enačbo reševat)
Hišna št. profesorja: 204, št. hiš: 288. Spisal sem pa program takole:
#include <iostream> using namespace std; int main() { int hisna = 99; // zacetek int st_his = 0; int i = 0; int vsota_manjsih = 0; int vsota_vecjih = 0; bool pogoj = true; while (pogoj) { hisna++; if (hisna == 999) pogoj = false; vsota_manjsih = (hisna-1)*hisna/2; i = hisna; vsota_vecjih = 0; while (vsota_vecjih < vsota_manjsih) { i++; vsota_vecjih += i; st_his = i; if (vsota_vecjih == vsota_manjsih) pogoj = false; } } cout << "Hisna stevilka profesorja Modrinjaka: " << hisna << endl; cout << "Stevilo his v ulici: " << st_his << endl; system("PAUSE"); return 0; }
V bistvu je tole brute-force metoda, ki jo je Fury omenil. Če hočeš matematično rešitev, je tudi precej enostavno. Nasvet: aritmetična vrsta (sicer boš moral v kodi kvadratno enačbo reševat)
VI VERI VENIVERSUM VIVUS VICI.
Zgodovina sprememb…
- spremenil: Alpheus ()
jernejf ::
Hvala vama
Za to brute-force metodo nisem še nkol slišal...si bom mal pogledal zaj.
Sicer pa z aritmetično vrsto vem da se da zračunat samo sem si mislil da je verjetno mišljeno da se naloga reši "programersko"
Hvala vama
LP!
Za to brute-force metodo nisem še nkol slišal...si bom mal pogledal zaj.
Sicer pa z aritmetično vrsto vem da se da zračunat samo sem si mislil da je verjetno mišljeno da se naloga reši "programersko"
Hvala vama
LP!
Alpheus ::
V bistvu gre pri brute-force metodah za reševanje s poskusi in napakami, pač mu daš en določen interval na kerem naj išče, pa ti pregleda vse možnosti, ko najde pravo, se ustavi in ti javi rešitev. Tradicionalen način bi bil rešit matematično, ker gre za za nalogo z eno samo rešitvo brez parametrov, za to ni potrebna v bistvu funkcija, tako da več ali manj nardiš zgoraj omenjen program tolk da pokažeš da veš.
VI VERI VENIVERSUM VIVUS VICI.
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | Vsota določenih elementov matrike [C]Oddelek: Programiranje | 989 (677) | RatedR |
» | programiranje krožek(pomoč)Oddelek: Pomoč in nasveti | 2744 (1732) | Marat |
» | [C] Vsota števil v poljuOddelek: Programiranje | 1263 (1201) | Cvenemir |
⊘ | [C#]naloga iz metod!Oddelek: Programiranje | 1646 (1479) | Ziga Dolhar |
» | Pomoc pri nalogiOddelek: Programiranje | 1997 (1803) | FuI2cY |