POJ 2390 (小数高精度乘法)
来源:互联网 发布:网络架构师 编辑:程序博客网 时间:2024/05/01 14:20
小数高精度乘法
m*(1+r/100)^y
Program P2390;const maxn=40000; F=10;type arr=record d:array[1..maxn] of longint; len,doc:longint; end;var r,m:arr; y:longint; i:longint; a,b:arr;function max(a,b:longint):longint;begin if a<b then exit(b) else exit(a);end;procedure multipy(a,b:arr;var c:arr);var i,j,len:longint;begin fillchar(c,sizeof(c),0); c.len:=a.len+b.len; for i:=1 to a.len do for j:=1 to b.len do begin inc(c.d[i+j-1],a.d[i]*b.d[j]); inc(c.d[i+j],c.d[i+j-1] div F); c.d[i+j-1]:=c.d[i+j-1] mod F; end; while (c.d[c.len]=0) and (c.len>1) do dec(c.len); c.doc:=a.doc+b.doc;end;procedure to_arr(doc:longint;var c:arr);var x,i,n:longint;begin read(x); i:=0; while (x>0) do begin inc(i); c.d[i]:=x mod F; x:=x div F; end; c.len:=i; c.doc:=doc;end;Procedure jie(a:arr;x:longint;var c:arr);begin if x=1 then begin c:=a; exit; end; fillchar(c,sizeof(c),0); if (x mod 2=0) then begin jie(a,x div 2,c); multipy(c,c,c); end else begin jie(a,x div 2,c); multipy(c,c,c); multipy(a,c,c); end;end;begin to_arr(2,r); r.len:=3;r.d[3]:=1; to_arr(0,m); read(y); jie(r,y,r); multipy(m,r,m); for i:=m.len downto m.doc+1 do write(m.d[i]); writeln;end.
- POJ 2390 (小数高精度乘法)
- 高精度乘法(小数)
- poj 1001 uva 748 Exponentiation(高精度小数乘法)
- 小数高精度乘法
- POJ 1001 (坑爹的小数高精度乘法)
- POJ 3289(高精度乘法)
- POJ 1001(高精度乘法)
- poj 1001 Exponentiation(高精度乘法)
- POJ 1001 Exponentiation (高精度/大数乘法)
- POJ 1405 Heritage(模拟+高精度乘法)
- POJ 1001 Exponentiation(高精度乘法)
- poj 1001 高精度乘法
- POJ 1001 高精度乘法
- hdu 1063 Exponentiation (高精度小数乘法)
- POJ 1001 高精度乘法运算
- poj 1001 (Exponentiation) 高精度乘法
- POJ 1306 Combinations 高精度乘法
- 【POJ】 1001-Exponentiation 【高精度乘法】
- 一招克死所有病毒(windows)
- Linknx users
- Java StringBuffer对象
- 三、Failed to convert property value of type [org.apache.commons.dbcp.BasicDataSource] to required
- MD5加密
- POJ 2390 (小数高精度乘法)
- SQL表非自增字段自增存储过程
- Java之美[从菜鸟到高手演练]之Comparator和Comparable在排序中的应用
- 第1帖:稳压电源
- 自己DIY 一键 显示和 隐藏 mac os 文件 的小插件
- POJ 3289(高精度乘法)
- POJ1700 Crossing River 过河问题
- TS包头语法结构-1
- eclipse不能安装adt的解决办法