Kezdőoldal » Számítástechnika » Programozás » Nagy számok összeadása és...

Krioszhun kérdése:

Nagy számok összeadása és kivonása C nyelvben, hogyan kell?

Figyelt kérdés

Sziasztok!

Tudnátok nekem kicsit segíteni? a kérdés a következő C-ben kellen nagy számok összeadását és kivonását megoldani,(nyiván scanf()-el a +- és a számokat beolvasni) de long int-be is max -2147483648..2147483647 ig lehet..nekem meg 99 számjegy és a +- jel. nyilván valahogy fel kellene osztani az adott számot és úgy leirni de az ott lévő léptetést fogalamam nincs h kellen leprogramozni... nagy segítség lenne ha valaki letudná irni



2016. nov. 5. 14:14
 1/6 anonim ***** válasza:

Natívan sehogy.

Valamilyen custom bigint típus kell, például stringként tárolni a számot.

2016. nov. 5. 14:33
Hasznos számodra ez a válasz?
 2/6 anonim ***** válasza:

GMP-t szokás nagy számokkal való műveletek elvégzésére használni.


[link]

2016. nov. 5. 16:36
Hasznos számodra ez a válasz?
 3/6 coopper ***** válasza:

Szia.


Elsőként szögezzük le a "C" nem az én asztalom.


De nagy valószínűség szerint (Ha nem speciális könyvtárat használod) akkor stringekkel lehet megoldani a dolgot.


Tehát a két számot eltárolod pozíció helyesen a két stringbe, aztán a műveltnek megfelelően egy ciklussal végigmész a stringeken és a megfelelő pozicíóban lévő számokat (amik a string megfelelő pozicíójából kapsz) összeadod vagy kivonod, figyelsz az átvitelekre, és az eredményt letárolod egy stringben.


Itt ugyan ilyen jelegű kérdés van feltéve, de ez szorzással, amiben végül is van összeadás is: http://www.gyakorikerdesek.hu/szamitastechnika__programozas_..


Sok sikert.

üdv.

2016. nov. 5. 16:49
Hasznos számodra ez a válasz?
 4/6 anonim ***** válasza:

De miért kéne ehhez feltétlen egy bájtot elpazarolni 10 értékre, mikor 256 értéket lehet benne tárolni?


Ahány bájtos számot akarsz, annyi elemű char tömbbel szépen implementálod a műveleteket.


Vagy KÉSZ library, és ez a jobb megoldás.

2016. nov. 5. 19:54
Hasznos számodra ez a válasz?
 5/6 anonim ***** válasza:
#4 Persze, jobban kihasználná a memóriát, amit te leírtál, csak egy kínszenvedés leimplementálni. Már a szám felépítése az input stringből egy tortúra lenne (merthogy valahol tárolnia kell kezdetben azt az akárhányszáz számjegyet, arra meg karakterláncon kívül nem sok minden alkalmas), egy decimálisan beadott, rohadt hosszú számot kell jóformán binárisan átszámolnia. Ha pedig binárisan akarja átszámolni, akkor nincs meg az a luxus, hogy felbontja számjegyekre, az összes jeggyel egyszerre kell számolnia a számrendszerek eltéréséből adódóan. És ha ki akarja írni a számot, akkor ugyanezt kell visszafelé megcsinálnia, mivel a user mégiscsak decimálisan akarja látni a számot. Lehet én vagyok tudatlan, de ez nekem rettentő kínkeservesnek tűnik. Meg lehet csinálni, de kérdéses, hogy megéri-e (és szinte biztos, hogy a kérdező nem tudná).
2016. nov. 6. 01:31
Hasznos számodra ez a válasz?
 6/6 A kérdező kommentje:
Hát köszönöm nektek legalább már tudom, hogy kb hol és mire kell koncentrálnom, a könyvben.... csak kicsit fura nekem, h progalapon kb a helloworld-nél tartunk és beadandóban meg ilyen problémát kell megoldanunk, viszonylag rövid határidőn belül... azért köszi mégegyszer.
2016. nov. 6. 12:35

Kapcsolódó kérdések:




Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!