zoukankan      html  css  js  c++  java
  • vj p1040题解

    原体叙述

    简单高精,其他不解释

    代码如下:

     1 type arra=array[-3..10000]of longint;
     2 var a,b,c:arra;
     3     m,n,next,l1,l2,l3:longint;
     4 procedure init(var m:arra;var lo:longint);
     5   var k:array[-4..10000]of char;
     6       q:array[-3..10000]of longint;
     7       l,i,j,z,p:longint;
     8       s:string;
     9 begin
    10   l:=0;
    11   fillchar(m,sizeof(m),0);
    12   while not(eoln) do
    13     begin
    14       inc(l);
    15       read(k[l]);
    16     end;
    17   for i:=-4 to 0 do k[i]:='0';
    18   for i:=1 to (l div 3)+1 do
    19     begin
    20       s:='000';
    21       z:=1;
    22       for j:=l-i*3+1 to l-(i-1)*3 do
    23         begin
    24           s[z]:=k[j];
    25           inc(z);
    26         end;
    27       val(s,q[i]);
    28     end;
    29   readln;
    30   lo:=(l div 3)+1;
    31   m:=q;
    32 end;
    33 procedure multiplied(a,b:arra;l1,l2:longint);
    34 var i,j:longint;
    35     s:string;
    36 begin
    37   l3:=l1+l2;
    38   next:=0;
    39   fillchar(c,sizeof(c),0);
    40   for i:=1 to l1 do
    41     for j:=1 to l2 do
    42       begin
    43         c[i+j-1]:=a[i]*b[j]+c[i+j-1];
    44         if c[i+j-1]>=1000 then
    45           begin
    46             c[i+j]:=c[i+j]+c[i+j-1div 1000;
    47             c[i+j-1]:=c[i+j-1mod 1000;
    48             if i+j>l3 then inc(l3);
    49           end;
    50       end;
    51   while c[l3]=0 do dec(l3);
    52   write(c[l3]);
    53   for i:=l3-1 downto 1 do
    54     begin
    55       str(c[i],s);
    56       while length(s)<3 do s:='0'+s;
    57       write(s);
    58     end;
    59 end;
    60 
    61 begin
    62   init(a,l1);
    63   init(b,l2);
    64   multiplied(a,b,l1,l2);
    65 end.                            
  • 相关阅读:
    多边形游戏
    大整数乘法
    矩阵连乘
    最长公共子序列
    动态规划
    快速排序
    二分搜索技术
    动态规划基本要素
    合并排序
    最大子段和
  • 原文地址:https://www.cnblogs.com/waterfalleagle/p/1602541.html
Copyright © 2011-2022 走看看