Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.95/21: Рейтинг темы: голосов - 21, средняя оценка - 4.95
 Аватар для Shevva
17 / 17 / 0
Регистрация: 13.09.2009
Сообщений: 140

Длинная арифметика: найти 2^200

05.01.2010, 20:34. Показов 4755. Ответов 29

Студворк — интернет-сервис помощи студентам
Помогите пожалуйста дорешать программу, она считает 2 в 200 степени, я коечто написал, но препод сказал, что прога выдаёт не полное число, помогите, или подскажите как переделать этот код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#include<iostream>
 
int main()
{
        int const dimm =60;//60 магическое число, ага.(2^200=1.xxx*10^60)
        int base = 10;// можно любую, с 10 проще ввод-вывод организовывать.
        int a[dimm];
        for(int i=0;i<dimm;i++) a[i]=0;
        
        a[1]=1;
        for(int i=1;i<=200;i++)
        {
                for(int j=0;j<dimm;j++) a[j]*=2;// чтоб не париться, умножаем всё
                for(int j=0;j<dimm-1;j++)
                        if(a[j]>=base) //проверка на перенос
                        { 
                                        a[j+1] +=(a[j]-a[j]%base)/base;//перенос в старший разряд       
                                        a[j] =a[j]%base;
                        }
        }
        printf("2^200 = ");
        for (int i=dimm-1;i>=0;i--) printf("%u",a[i]);
        printf("\n  ");system("pause");
        return 0;
}
Добавлено через 1 час 4 минуты
отзовитесь кто-то!!!
1
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
05.01.2010, 20:34
Ответы с готовыми решениями:

Длинная арифметика: по заданному n найти n+1
Помогите плиз. Вводится n. Вывести N+1. Ограничений нет. Я понимаю что надо ввести массив и читать каждый символ. Оставшиеся елементы...

Длинная арифметика: по данному числу n найти n+1
Помогите реализовать длинную арифметику #include &lt;iostream&gt; #include &lt;string&gt; using namespace std; int main(){ int a; string...

Длинная арифметика (найти остаток при делении на 7)
Уважаемые программисты! Задача на длинную арифметику (никогда такую не решал, потому хочу разобраться. Математически понимаю, а как...

29
║XLR8║
 Аватар для outoftime
1212 / 909 / 270
Регистрация: 25.07.2009
Сообщений: 4,360
Записей в блоге: 5
05.01.2010, 22:58
Студворк — интернет-сервис помощи студентам
значит берем long long cur = a[i]*b[i];
if (cur >= base) a[i] = cur % base;
else a[i] = cur;
смылс ясен

Добавлено через 1 минуту
напоминаю: long long -2^64..2^64-1, int -2^31..2^31-1
0
Эксперт С++
2924 / 1274 / 114
Регистрация: 27.05.2008
Сообщений: 3,465
05.01.2010, 23:02
Хех. 2^50000 ? Лехко:
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
3160699436856317896135924659945691788984676387834935666847743155564943937902009550651067144922529420
9742826903437980616228916502470600915335951301703658681080999701165310874670475837220937876396746497
6566207436646688332492793274392622222625632564661947959707085306541012631955664509548758425573162522
9939513738335892649026005867435951184963615454162198009836540553902746189836926616803054602986713771
3007642361039125843169843870464218910429408624092857603876076421786604470842785823437419757887825753
9725567983538550925561769953037877328561214974661296619265125369311431327385899460540977144516368849
0715356137720041811636018280718733780759203810695576005864810237900789639882550370233732760551157423
1862217774379622351136850570048758126258377416390740146358692544678706696716588117499445729509471205
2295582841326213495012334345094489338108644570432751660847885329573521479427979542282886112747824139
6081419738759639852247634596698774287547984270270829223110217158518692621481994384293987162186350943
1137102098927729717161109299277316364870529929877499525820751999998236233363782012065361824091356732
6085843439768032429443169553231398809470582512717028167134275613213083463062673516151887700147935309
9675421568669161387971545385350702911535042214105270064184049195321693402645502131017185839794236528
3920261189168015347221398702227467413959024921285864930841224999214284231676593869911990531454402329
1802533729479212148081732055742481713434116656013132838054708916245196086301989684127760826747307103
2610361884348741832609100033764267372951754668207732140976344881559366912679236124697823644196584984
3321194662176010831836633117424103375556211047342924899032351921608213308980295359143951208614789511
5772596669501925625901791072487074730504874163168342215882959262699867593549596835570603479437724970
4826237385353428041477614977159200366168819484882369473577673820234304059320536368181780663852770156
1760459970238541882109315057646034974181111168330455946834607618100603479386661073764073765381614337
9408220115245275503868091524866757603781644810711492845495735897376997910177508128056385842565998555
1853002945198136847407803098731016476002188721167044725016609620417517264461388623721099795827561842
2332110272657076528692275499713604211385238379353376108299305309402458187173977678774745568561156483
8171285094905742983468978692390023819966846242012497501446017693775754370603708801380980876300905535
0430278490509069412005546309455095193839024869890529164588776426256822355723140640821450894163789455
3950447423586022482111194025542743646078152429744407909544764622354213430420618881884317526325279219
8201953982967648217512435660255802435828170971052171882825194440781677271454497767346098355893516823
7819654683418376457904080539202530627669869881215398947957922545005739842763519814852704765560828463
4660361497922811823269432068864199268501350631621792418712747960248027426862250249076056324474713326
4200840994010491398338587428300174678664787974799408921333023901547401801313768527104325438541680441
1944936017477858365910618800586138894786098262095903664034479708143591509590289319757152692646380447
4748200592213540594450935754427169733310981767167078486894623765233345561921939523161162182284422660
6907829003366816888278993793010660652802167949756321870143304138536255338415578514411050443166225189
2992899207988896988077083065532889768442011243436599859452840889686495279989903477096078575541951328
8063228519502525525923441687433165239240916777765550353005468965647112465990965015380157324605685051
5930902687694282225794280533877794794908338536685388793156354734297275003873544101236208880782600267
8323209075341664682039970244371752439627477589922704036287386433079400082357329563904616267987268587
2018472676509820702742041187161456735773470878944058296709158924445980083116790069275565858632350621
7739332375392576953008066731474810976934070561682915871374236695632381165893998037649036220653650916
3262895994035528548104714311529907097590979874192495481909859345140169036819397692571708295085608035
8488785111037802113941506714904159995239179031055325674951078797125883872100845863580446944577533545
1632534743706268126036681410977942205019103258185145204606088135937662013796616774023976484315243822
5370822153538376483436617110334960092927481817805369608748651839786120991198073428704485016027868995
8777516204282894006411324592881455609027513470986446955634776374510936963027930574892010580883426063
4292298119003443269849091588627131196185765202636105362870517160030315012353868500130877947968185731
2254943518449704275479642437275140137984669941944836642040223878486538067789693348083730346825273845
4600617068522907754669857809685925559489724138631200632211431856298348282843320404418451715834186842
3166014539299240992259832055842763554614964025949930389668765588985323517323156359489433135508538710
7697230905654705259068621648397387329097578047593092846447686613216298865047063582525798691383901918
6286329952841235539245313416996136515034755577204329028194989969667025465517226658642937658004574581
5051431828341501512584448186045615473533354780043805720577868580931428001115696165748078567248197660
3269568321288690659192303413177475131231965528530942225372500539202363473718122984588259769774091345
7139104259740189112361805700885805440886582482045797511486340223258739402170222256993140673372130940
8602490472112515920546469747783795150154306151025346022733048680115003385668808360437966602256499937
1994208371160152723047097310816436441163452210069854700418024650230525914219301515725567531657567580
1635963802278335652393703330475820636887936793636844861680615875759305471054240409750949186383142559
1750294426733234317537608263842808569793189528184141262461867819252906458982799005230871607851140952
0429551751028805106260663324886752157711131176942095875766121113824754507114500952202347645155880155
8852780149543720295164010630404668854701455348028868254827738435519886213617395814125760480627746582
5142453812023600588770405124077780590313614115413009895569930059575990954847107185965714887220273748
5876880664561265218967623879169138363455073302354991176417279141163114186466600052094711863705684900
0985795233557102534856310356865500339740379035205414024502427192407973260254849937043996797948719109
2702366482823922517557224622676505063223355294966259190196145892906969466221534197061402048331545799
0124640013522094211641494149867849258369271568806893320386405191564343234607244674387924106898339326
0255266746590097841434648231624270530061778949524519512449589146484185964248897890086792634960962891
7885058773879417251476754891402138979727464770579300988293911606354147695534210550057433965639981938
8516844803259941917998483757110114029135092405018779285891809345880290584450371392611286191050792529
5518028518239903096327053460232548268754761299838779455586507861017449704532926640674870784839723967
0674446609857317912588211684964857608883125673415106215574775638537831506000889944364923439307997913
1039365729356796938706763568193651332269863240182237146533295405342240355242109979044395569527874520
7740127881669686772764934572070475330552790889336826920146960405048251437601589618342412953082871911
7019057378961399860339359041493925430546507931139410975289649377203821505682451251487846930131701706
3082134512404070211623281097074165789178376568103254800488918480236589450225691849471266440724147764
8625695349482414588437590345653702825419922759256891809259986921900516036632604864784654460218902210
8586378519903708837474696195225582710510324285255067873353124768408842336078479442493966754767802393
9008044711347695593952595645764200085119099979544055147487323341215334555709196780139933682500741839
8129321563511207962474682146572446181950950305066578087402911079938181823763978827376327417457471953
5154571587100825868136168496654866061918144953445848917358064779129626924634118605576693276155915052
1309231891738476118424685199962976418495044193590453686856782078504306975602130322378117418749641128
2991417248230210535656517134049977306974381195196200816319424503232865365355094262618057759339034941
7295109326825224346137069365794602719749308091427226773757318056694179139673877368269048399869726277
6008005259823852668363210327895409895710606975967654501181761916387719452260299629849433609758473948
4133494551945644038062749667983916024645319409122432075814827846162910152556877405769363880247576750
1688815627428824585612191222102194345386478032375911828350727263599650574546222449709416359099707470
0818017606283851984670403315773016215268600152326505929064680061985889686166593526608260345504672816
4510208827559763785125671925782337454941744879613341877849163081687136589893002841347504391539829217
7932333254383402774301524192295705407506136594832655281177858019977530552030411365669996322404224341
4282607459803128399687495472309439378003887795387400170190820290583561307179115229188565097204042602
9401243262056837894707210226439939082469608332280772152377039274901798861758438964847786434108172696
9031721372164551239408399544739276053515968036536011884202110908939114033377331251725806036387729825
5941817162718561438303458401089912150516256341442449652054770023414946313724050167525187041208646911
2283509904033681995760642338199460298699492794516863120768281799377087399363871341740853853336434632
5787458059724079269057119064140563119523972120898555109357153837079257323275709625846645485564231161
7374673942354602528830612341852932686815306450185341484849093491762837620237386842287913381520626080
1172623151682618634616613409187055773754176700233664540251835820243373011647141384746241123987444757
9922637964722810161705808470598847580065505309482582050478364773667111862578370932799103004122766459
4263923246692075724835347919569762240576413561949173457011336100957011363477637411765767203240425103
9281802297974222094862611215083461846998014312838278358110038008573289204056007877597261852385998986
7929191198803714424901293940870193867905223189384665029208300902285816208052762873003480908311982807
3245480621201400108131349518751111706142512239976281395176137249051218501377932897652779649236179128
8636106832689618416202911173258133073422438621251263946715048473820390289096220814962619495150136592
6814352142527574046469439096406807441606408682520042928263528771721927301021496523344545499905543796
8945444660618445949951622486235186096099409399261874616849090617613837956389467907896797311184827619
4795376824066706650411508010774077786228592425307448001585572296527531058811418470216295259338280644
7593710914331421031187235233679782847168603760420852406104938440485731463816970674018094973505309352
3615227261548361083622524076646689287590496303679729545203050908730605290907810258967044283091528451
8958188703419005875073245246588972064703226928563205767519749240769529228533647953058429825507448676
9693754190415056365058295956917042796806351122703393388653930793827068782027999557131819393767949612
8820957769765948354112403200778056714635299274033456320537498356054366136573398715082620546476186202
3057926907342280009854546393170817016390876725893827936451774104983015456896663249367255811703696748
7407060960353997822393012092800931138735805061633987660518860017441227797816240923091530305530156250
5363147926142387716810598488508143536876145510573301401934626741183440087486797914444089643836461081
3742000756707689234263713480788870632303779920837025219304850456301113417547447951199137009450532148
6223711954816008371883916615380900587520540981044476459530520722620491991685102659580878107117739951
6703007741268128388251027806978756780965863282079114981098532902812630569600865339409792542901056179
0187732768905961014527594622895231659989286496970141275411890504893658062210590025466516694135438084
8622683138692166345281426512263981791712558141912514361654201043380151420713531725010733557667560096
1875533373968231977609530585561723093869718973501662405376134561821455699409638672137368629934434904
1352436162909394963922135291324650380703815971215545933018913518138312847793905957840604245869128281
1660113249425506297315980056764183649895701405494295471189471008273827317153052163746734869745246697
9485951017251467882839811425221840317955114236128886094171414113610394646355770173692127111713323245
2749287344867772082880573912409125086577089844317099540631189922252042152147822609003266281932059808
2839237772235007563664926524263677730152003820777164718657123220235494929930953685149165518790303838
7627856713703659184219746396337480407616195395474061986947525036188279119416469635112795244440267844
4852600328472414595149234508339358086781033115344442631581001670925695208237296970950972205559292074
3080946327245960553519992022114732778261772131566128901474557769887367299652018903874202963204043122
3677847217157578596290273945780131899615049297151882080212613618218835189615546146490618786229788621
1594784090628555225184019698003178682678784593640522756989495608346840037295535074628968838010017853
9352352869318980899863422853009811282065716381964632000983969703190521211821989949629816389723155190
1772401695505788408841293397249025198635937668398411035193162459833409988404313145496824589919298447
9269933083161317707718103968695445501144242328392641862863128153749657139534774561976060828917013048
1256165166031913818793697201750649975426852734782217476153076736601010993815086363475990260614157863
2188751943281741709639780096523879596418113007481292983895437069705044558380617028625715666636690157
5251823982561171994454032410235590152988076018513305471787955778431497959335660603766440111721550583
9966253076917937590328614902761207580631577637770719582560186875945608805073357931490318906252418113
7056132917203202803431388444967344457607414912712286136586662334942533483472775769916860739822410605
1398898876229332319425965458363423888499770513188745857526855534392224807882852636961110655834791585
2165559901175285228284776880974278792124143408931731040916734241773627917294729277296932715336689723
6428973617809658910838076604238454065661670923252421041624103843924047529979248232963083731950440348
8566785530941065480431727022891998992753183629053784087124151592699233440949586810163533983067259044
0735822076918619460687001503248459100309638369810459171262570286726045385441517376137738721961287476
4117226958751591406925850280213167967358855839013668351812162347016911885289247085576542162727707634
0436985422269976658770928699129566620952776151478818805808394976630444567356680740846060555091213240
9816257770049562325062657614039211879372659830089515161293666936998121884180250856956350674909275836
1711504078242899013061396198412853703118010073765571276002967623291654506202798544591136168371274314
0462890622990814961530334121126413878705809085823519708943048803287718794504118738690419041786772307
7820636828443833342976043604015091279951803735721235437473384490565160081302195780914437763147957163
6638095648273971176393911636202338522338349855986239822559626678516947067545491059640363164772253282
8910799941013761520874161827739528408814450359132358223735505161262628844452344058115924660555716274
5016856992538972103994421817686892118194442530409613231272153868075745512159447331080257938539357405
9209602443968201967760613102289456131085235835109376
 
Process returned 0 (0x0)   execution time : 1.062 s
Press any key to continue.
0
║XLR8║
 Аватар для outoftime
1212 / 909 / 270
Регистрация: 25.07.2009
Сообщений: 4,360
Записей в блоге: 5
05.01.2010, 23:07
покажи код

я с таким же успехом могу сказать что Бог это таракан и вы не сможете дать опровержение
0
4866 / 3288 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
05.01.2010, 23:24
как поделить 2^50000 на 2^10001
вычислить то их - это примерно ясно
а деление само

Добавлено через 1 минуту
кстати, оно может не поделиться нацело ещё

Добавлено через 1 минуту
а, не, по ходу оно всегда нацело поделится
0
║XLR8║
 Аватар для outoftime
1212 / 909 / 270
Регистрация: 25.07.2009
Сообщений: 4,360
Записей в блоге: 5
05.01.2010, 23:29
a / b = c
a % b = d
моделируем дерение первых n чисел числа а на n чисел числа b, впрочем деление можно реализовать отниманием, остача узнается сама собой по завершении деления
0
Day
 Аватар для Day
1180 / 990 / 83
Регистрация: 29.10.2009
Сообщений: 1,385
06.01.2010, 14:33
Здесь представление длинных чисел, можно хранить О-о-очень большие числа
(предлагается в качестве упражнения оценить порядок)
Что любопытно - лишней памяти не просят.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
// Большие числа
#include <stdio.h>
#include <math.h>
#include <alloc.h>
#include <stdarg.h>
 
/***** Пакет XXL - работа с большими числами *****/
// Этот пакет есть урезанная и заточенная под большие числа версия
// пакета XTD, созданного в конце восьмидесятых годов.
// В общем-то это штука типа TList в C++
// Числа представлюятся в 2**32-ричной системе счисления
 
typedef unsigned long LU;
typedef unsigned int uint;
 
typedef struct { // в этой структуре хранятся большие числа,
                 // При необходимости происходит раздвижка
    LU *ss;    /* Массив LU */
    int ms;    /* Выделено памяти на ss */
    int ns;    /* Заполнено */
    int st;    /* Шаг приращения памяти для ss */
               }  XXL;
// "Цифры" хранятся от младшей. ss[0] - младшая цифра
 
XXL *newXXL();        /* Создание  */
delXXL(XXL *x);       /* Разрушение  */
nulXXL(XXL *x);       /* Обнуление   */
locXXL (XXL *x);      /* Перераспределение памяти для добавки разряда */
addXXL (XXL *x, LU A);    /* Новый элемент */
/*********************/
XXL *newXXL()           /* Создание (созданное число = 0) */
{ XXL *x;
    x = malloc(sizeof(XXL));
    x->ss = NULL;
    x->ms = x->ns = 0;
    x->st = 20;
    return(x);
}
/*********/
delXXL(XXL *x)          /* Разрушение  */
{
   if (x==NULL) return;
   free(x);
}
/*********/
nulXXL(XXL *x)          /* Обнуление   */
{
   if (x==NULL) return;
   x->ns = 0;
}
/*********/
locXXL (XXL *x)    /* Перераспределение памяти для добавки разряда (если нужно) */
{
   if (x->ss==NULL) {
       x->ms = x->st;
       x->ss = malloc( x->ms * sizeof(LU));
   }
   if (x->ns>=x->ms) {
       x->ms += x->st;
       x->ss = (LU *)realloc(x->ss,x->ms*sizeof(LU));
   }
}
/*********/
addXXL (XXL *x, LU A)    /* Новый элемент */
{
   locXXL(x);
   x->ns++;
   x->ss [x->ns - 1] = A;
}
/********/
// А вот и сами большие числа...
 MultL(XXL *xL, uint n); // xL *= n
 SumL(XXL *xL, XXL *xL2);    // xL += xL2
 CompL(XXL *xL1, XXL *xL2);  // Сравнение
 XXL *Tran2to1000(XXL *X);  // В 1000-ричную системе счисления
 PropisL(XXL *X); // Число прописью
 sklon(int dd);         /* Определение склонения числа */
 uint DivL(XXL *Xres, XXL *XT, uint L); // res = XT % L, Возвращает остаток
 printXXL(char *N, XXL *X);   // Отладочная печать длинного числа
/** --------------------------- */
MultL(XXL *xL, unsigned n)   // xL *= n
{ int j; LU L, Vume, aa, ab, ss, ss2, sa;
 
   //wrjur("n=%x", n);
   Vume = 0;
   for(j=0; j<xL->ns; j++) {
     L = xL->ss[j];
     aa = (L & 0xFFFF);  // Младшая
     ab = (L >> 16);     // Старшая
     // wrjur("j=%d L=%lx, aa=%lx ab=%lx", j, *L, aa, ab);
     ss = aa * n;
     ss2 = ss + Vume;
     Vume = 0;
     if (ss2 < ss) Vume = 1;
     ss = ab * n;
     sa = ((ss & 0xFFFF) << 16); // В старшую текущей
     ss2 += sa;
     if (ss2 < sa) Vume++;
     Vume += (ss >> 16); // В следующую
     xL->ss[j] = ss2;
   }
   if (Vume > 0) addXXL(xL, Vume);
}
/*****************/
SumL(XXL *xL, XXL *xL2)   // xL += xL2
{ short n1, n2, j; LU Vume, a, b, ss;
    n1 = xL->ns;
    n2 = xL2->ns;
    Vume = 0;
    for(j=0; j<n1; j++) {
      if (j >= n2) b = 0;
      else         b = xL2->ss[j];
      a = xL->ss[j];
      ss = a + b + Vume;
      Vume = 0;
      if (ss < a) Vume = 1;
      //printf("a=%lx b=%lx ss=%lx Vume=%lx\n", a, b, ss, Vume);
      xL->ss[j] = ss;
    }
    while (j < n2) {
      b = xL2->ss[j];
      ss = b + Vume;
      Vume = 0;
      if (ss < b) Vume = 1;
      addXXL(xL, ss);
      j++;
    }
    if (Vume > 0) addXXL(xL, Vume);
}
/*****************/
CompL(XXL *xL1, XXL *xL2)  // Сравнение
{ int j; LU L1, L2;
   if (xL1->ns != xL2->ns) return(xL1->ns - xL2->ns);
   for(j=xL1->ns-1; j>=0; j--) {
     L1 = xL1->ss[j];
     L2 = xL2->ss[j];
     if (L1 > L2) return(1);
     else if (L1 < L2) return(-1);
   }
   return (0);
}
/*********************/
uint DivL(XXL *Xres, XXL *XT, uint n) // res = XT % n, Возвращает остаток
{  LU aa, ab, r, x, L, *kk; int j, i;
 
  nulXXL(Xres);
  kk = malloc(XT->ns * sizeof(LU));
  for(j=0; j<XT->ns; j++) kk[j] = 0;
  r = 0;
  for(j=XT->ns-1; j>=0; j--) {
    L = XT->ss[j];
    aa = (L & 0xFFFF);  // Младшая
    ab = (L >> 16) + (r<<16);     // Старшая
    x = ab / n;
    r = ab % n;
    kk[j] = (x<<16);
    aa += (r<<16);
    x = aa / n;
    r = aa % n;
    kk[j] += x;
  }
  for(i=XT->ns-1; i>=0; i--) if (kk[i] != 0) break;
  for(j=0; j<=i; j++) addXXL(Xres, kk[j]);
  free(kk);
  return(r);
}
/*********************/
XXL *Tran2to1000(XXL *X)  // В 1000-ричной системе счисления
{  XXL *Itog, *Xres, *XT;  LU R; int j;
  Itog = newXXL();
  Xres = newXXL();
  XT = newXXL();
  for(j=0; j<X->ns; j++) addXXL(XT, X->ss[j]);  // XT := X
  //printXXL("X", X);
  while(1) {
    R = DivL(Xres, XT, 1000);
    addXXL(Itog, R);
    if (Xres->ns == 0) break;
    if (Xres->ns == 1 && Xres->ss[0] < 1000) {
      addXXL(Itog, Xres->ss[0]);
      break;
    }
    nulXXL(XT);
    for(j=0; j<Xres->ns; j++) addXXL(XT, Xres->ss[j]);    // XT := Xres
  }
  delXXL(Xres); delXXL(XT);
  return(Itog);
}
/**********************/
main()
{ XXL *Xchess, *Sum, *X1000; int j;
   Xchess = newXXL();
   addXXL(Xchess, 1);
   Sum = newXXL();
   addXXL(Sum, 1);
   for (j=0; j < 50000; j++) {  
     MultL(Xchess, 2);
     SumL(Sum, Xchess);
   }
      // Число в Sum готово. Теперь бы его напечатать ...
   X1000 = Tran2to1000(Sum);  // В 1000-ричной системе счисления
   for(j=X1000->ns-1; j>=0; j--) { // Печатаем триадами
     if (j==X1000->ns-1) printf("%ld ", X1000->ss[j]);
     else                printf("%03ld ", X1000->ss[j]);
   }
   printf("\n");
}
/* ------------------ */
Если интерсно, можно еще и по-русски написать...
1
 Аватар для Shevva
17 / 17 / 0
Регистрация: 13.09.2009
Сообщений: 140
06.01.2010, 20:35  [ТС]
у у меня эта прога не компилится. наверное потому, что нету этого пакета XXL/
0
Day
 Аватар для Day
1180 / 990 / 83
Регистрация: 29.10.2009
Сообщений: 1,385
06.01.2010, 21:00
Пакет XXL вставлен в код, кот. я тебе послал
Не компилится по каким-то другим причинам
Какой у тебя транслятор?
0
 Аватар для Shevva
17 / 17 / 0
Регистрация: 13.09.2009
Сообщений: 140
06.01.2010, 21:04  [ТС]
да не компилится, выдаёт около 20 ошибок

Добавлено через 21 секунду
НА чём ты написал прогу?

Добавлено через 32 секунды
Я пробовал скомпилить на деве
0
Day
 Аватар для Day
1180 / 990 / 83
Регистрация: 29.10.2009
Сообщений: 1,385
06.01.2010, 21:54
Старинный Borland C 2.0
прекрасно все компилится
На других Борландах тоже без забот
Что такое "дева" - не знаю
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
06.01.2010, 21:54
Помогаю со студенческими работами здесь

Длинная арифметика: найти сумму 1^2+2^2+3^2+...+n^2 при n > 20000
требуется написать задачу для подсчета суммы s=1^2+2^2+3^2+...+n^2 n&gt;=20000

Длинная арифметика: найти частное и остаток от деления числа a на b
Даны два длинных числа a и b. Найти частное и остаток при делении числа a на b. Не могу реализовать деление отрицательных чисел. Помогите...

Найти максимальное из чисел полученных циклическим сдвигом (длинная арифметика)
Дано целое десятичное число N (1 &lt;= N &lt;= 2^100-1). Некто записал это число в двоичном формате и стал циклически сдвигать влево, т.е. брать...

Длинная арифметика. Найти количество делителей n-значного натурального числа (n > 20)
Найти количество делителей n-значного натурального числа (n &gt; 20). Помогите с задачей пожалуйста.

Длинная арифметика
нужен текст програмы на С, в которой был бы реализован алгоритм ввода-вывода длинного числа, разности двух длинных чисел и их сравнение.


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
30
Ответ Создать тему
Новые блоги и статьи
Программный контроль заполнения реквизита табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать контроль заполнения реквизита "ПричинаСписания". . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Программное заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru