C語言 高精度演算法
阿新 • • 發佈:2019-02-16
program test; type my_arr=array [0..100] of longint; var str1,str2:string; d1,d2,d3:my_arr; procedure replace(str:string;var arr:my_arr); var i,j:longint; begin arr[0]:=length(str); for i:=1 to arr[0] do begin arr[i]:=ord(str[arr[0]-i+1])-ord('0'); end; end; function max(i,j:longint):longint; begin if i>j then exit(i); exit(j); end; procedure add_arr(arr1,arr2:my_arr;var arr3:my_arr); var i,j,k,t:longint; begin fillchar(arr3,sizeof(arr3),0); k:=max(arr1[0],arr2[0]); for i:=1 to k do begin t:=(arr1[i]+arr2[i]+arr3[i]); arr3[i]:=t mod 10; arr3[i+1]:=t div 10; end; if arr3[k+1]<>0 then arr3[0]:=k+1 else arr3[0]:=k; end; procedure print_arr(arr:my_arr); var i:longint; begin if arr[0]=0 then begin writeln(0); exit; end; for i:=arr[0] downto 1 do write(arr[i]); writeln; end; begin readln(str1); replace(str1,d1); readln(str2); replace(str2,d2); add_arr(d1,d2,d3); print_arr(d3); end.
筆者大一的時候學了一種新的程式語言叫做C語言,相信很多同學都已經接觸過C語言了,今天在xiaoz吧看到某無良吧主發的題目,我就說這題目不是一般a+b,這傢伙還一直狡辯,現在我來跟大家分享一下有關高精度計算的C語言演算法。
不多說,當然先上無良吧主今日分享的題目,見下圖: