aritmetică lung 1
Aritmetică lung - secțiunea de programare olimpiada, care se ocupă cu punerea în aplicare a acțiunii, cu un mare număr care nu se încadrează în tipurile de date standard. Până în prezent, una dintre limbile folosite pentru a rezolva problemele de olimpiada și sprijină aritmetica lung, este Java, în cazul în care toate funcțiile necesare pentru a lucra cu numere lungi sunt construite și puteți face fără implementări consumatoare de timp.
Practic, vom lua în considerare de lucru cu numere întregi. Pentru depozitarea de matrice intreg lung poate fi utilizat, în care ca și numărul element de matrice este o singură cifră. În primul element al matrice va stoca ultima cifră a numărului, în data de 2 - penultima, etc. până la ultima cifră. În elementul 0m poate stoca numărul total de cifre din numărul. În cel mai simplu caz, pentru a stoca numărul 154 ar fi suficient pentru a utiliza următoarea intrare:
Un element de matrice poate fi o singură cifră, este posibil să se utilizeze un singur element pentru stocarea 4 cifre ca înțelegem că, în calculatoarele moderne, toate operațiunile de cel puțin 32 de biți, astfel încât timpul pentru adăugarea a două numere este aceeași ca și în adăugarea de numere, format din 4 cifre. Prin urmare, folosesc adesea baza de sistem numărul de ordine = 10.000, iar lungimea reală a numărului este stocat ca ar fi sistemul numeric al 10.000, vă permite să crească viteza de operațiuni pe ele de 3-4 ori.
Ideea de a lua toate operațiile necesare (adunare, scădere, înmulțire, împărțire, etc.) se bazează pe principiile pe care le folosim în calculele pe hârtie. Chiar și atunci când vom vinde divizia „în coloana“, de fapt, noi lucrăm cu numere mici, aducând o problemă mai complicată la un set de subactivități mai simple.
Sarcinile care sunt discutate în această secțiune sunt setul de bază, suficient pentru a forma competențe inițiale mastering principii lungi aritmetice. Aproape toate obiectivele pentru aritmetică lung necesită citirea dintr-un fișier și scrie la fișierul de numere lungi, asa ca am da punerea în aplicare a acestor funcții în această secțiune, și le va folosi in acest tutorial:
De asemenea, este adesea necesar să se compare numere lungi. Vom descrie următoarea funcție, care va reveni 0 dacă acestea sunt numere egale -1 în cazul în care primul număr este mai mic de 1 secundă, iar atunci când primul mai: