高精度加法

C语言 高精度加法
核心代码:

int x=0;
for(j=0; j<10000; j++) {
c[j]=a[j]+b[j]+x;
x=c[j]/10;
c[j]%=10;
}

应用:
可用于需要输出数大于长整形long long型最大上限
关于long long上限,可用sizeof()运算计算出

代码:
#include
#include
main(){
int n;
n=sizeof(long long);
printf(“sizeof(long long)=%d\n”,n);
printf("%lld\n",(long long)(pow(2,63)-1));
}
可见long long通常占8字节,占64二进制位,其中存在一位符号位,剩下63位二进制数最大可表示 2的63次方-1,即9223372036854775807.
另外 pow函数返回值为double型 打印时需要用(long long)对其进行类型转换。

例如 输出递推数列的高次项

如斐波那契数列
斐波那契数列第100项:
354224848179261915075

斐波那契数列第1000项:
43466557686937456435688527675040625802564660517371780402481729089536
555417949051890403879840079255169295922593080322634775209689623239873322471
161642996440906533187938298969649928516003704476137795166849228875

斐波那契数列第10000项:
33644764876431783266621612005107543310302148460680063906564769974680081442
16666236815559551363373402558206533268083615937373479048386526826304089246
30564318873545443695598274916066020998841839338646527313000888302692356736
13135117579297437854413752130520504347701602264758318906527890855154366159
58298727968298751063120057542878345321551510387081829896979161312785626503
31954871402142875326981879620469360978799003509623022910263681314931952756
30227837628441540360584402572114334961180023091208287046088923962328835461
50577658327125254609359112820392528539343462090424524892940390170623388899
10858410651831733604374707379085526317643257339937128719375877468974799263
05837065742830161637408969178426378624212835258112820516370298089332099905
70792006436742620238978311147005407499845925036063356093388383192338678305
61364353518921332797329081337326426526339897639227234078829281779535805709
93691049175470808931841056146322338217465637321248226383092103297701648054
72624384237486241145309381220656491403275108664339451751216152654536133311
13140424368548051067658434935238369596534280717687753283482343455573667197
31392746273629108210679280784718035329131176778924659089938635459327894523
77767440619224033763867400402133034329749690202832814593341882681768389307
20036347956231171031012919531697946076327375892535307725523759437884345040
67715555779056450443016640119462580972216729758615026968443146952034614932
29110597067624326851599283470989128470674086200858713501626031207190317208
60940812983215810772820763531866246112782455372085323653057759564300725177
44315051539600905168603220349163222640885248852433158051534849622434848299
38090507048348244932745373262456775587908918719080366205800959474315005240
25327097469953187707243768259074199396322659841474981936092852239450397071
65443156421328157688908058783183404917434556270520223564846495196112460268
31397097506938264870661326450766507461151267752274862159864253071129844118
26226610571635150692600298617049454250474913781151541399415506712562711971
33252763631939606902895650288268608362241082050562430701794976171121233066
073310059947366875

你可能感兴趣的:(高精度加法)