高精包

var x,y:ansistring;
    a,b:array[1..11000]of int64;
    c:array[1..35000]of int64;
    num:array[1..11000] of longint;
    i,j,lena,lenb,lenc,len:longint;

procedure init;
begin
fillchar(a,sizeof(a),0);
fillchar(b,sizeof(b),0);
fillchar(c,sizeof(c),0);
end;

function compare(s1:string;s2:string):boolean;
var len1,len2:longint;

begin
len1:=length(s1);
len2:=length(s2);
if ((len1<len2)or(len1=len2) and (s2>s1))then
        compare:=true
else
        compare:=false;
end;

procedure input;
begin
readln(x);
len:=length(x);
lena:=len div 5;
for i:=1 to len do
        num[i]:=ord(x[len-i+1])-48;
for i:=1 to lena do
        a[i]:=num[5*i]*10000+num[5*i-1]*1000+num[5*i-2]*100+num[5*i-3]*10+num[5*i-4];
if ((len mod 5)<>0) then
        begin
                inc(lena);
                for i:=1 to (len mod 5) do
                  a[lena]:=a[lena]*10+num[len-i+1];
        end;
readln(y);
len:=length(y);
lenb:=len div 5;
for i:=1 to len do
        num[i]:=ord(y[len-i+1])-48;
for i:=1 to lenb do
        b[i]:=num[5*i]*10000+num[5*i-1]*1000+num[5*i-2]*100+num[5*i-3]*10+num[5*i-4];
if ((len mod 5)<>0) then
        begin
                inc(lenb);
                for i:=1 to (len mod 5) do
                  b[lenb]:=b[lenb]*10+num[len-i+1];
        end;
end;

procedure print;
begin
write(c[lenc]);
for i:=lenc-1 downto 1 do
   begin
      if (c[i] = 0) then
         write(‘00000‘)
      else
        if (c[i]<10) then
         write(‘0000‘,c[i])
      else
        if (c[i]<100) then
         write(‘000‘,c[i])
      else
        if (c[i]<1000) then
         write(‘00‘,c[i])
      else
        if (c[i]<10000) then
         write(‘0‘,c[i])
      else
        write(c[i]);
   end;
end;

procedure plus;
begin
fillchar(c,sizeof(c),0);
if (lena>lenb) then
   lenc:=lena+1
else
   lenc:=lenb+1;
for i:=1 to lenc do
        begin
                c[i]:=a[i]+b[i]+c[i];
                c[i+1]:=c[i+1]+c[i] div 100000;
                c[i]:=c[i] mod 100000;
        end;
while ((c[lenc]=0) and (lenc<>1)) do dec(lenc);
print;
end;

procedure mui;

begin
fillchar(c,sizeof(c),0);
for i:=1 to lena do
        for j:=1 to lenb do
                c[i+j-1]:=c[i+j-1]+a[i]*b[j];
for i:=1 to lena+lenb-1 do
        if (c[i]>9999) then
                begin
                        c[i+1]:=c[i+1]+c[i] div 100000;
                        c[i]:=c[i] mod 100000;
                end;
lenc:=lena+lenb;
while ((c[lenc]=0) and (lenc<>1)) do dec(lenc);
print;
end;

procedure sub;
begin
fillchar(c,sizeof(c),0);
if compare(x,y) then
   begin
        write(‘-‘);
        for i:=1 to lenb do
            begin
                  b[i]:=b[i]-a[i];
                  b[i+1]:=b[i+1]+ord(b[i]>=0)-1;
                  b[i]:=b[i]+ord(b[i]<0)*100000;
                  c[i]:=b[i];
            end;
        lenc:=lenb;
   end
else
   begin
        for i:=1 to lena do
            begin
                  a[i]:=a[i]-b[i];
                  a[i+1]:=a[i+1]+ord(a[i]>=0)-1;
                  a[i]:=a[i]+ord(a[i]<0)*100000;
                  c[i]:=a[i];
            end;
        lenc:=lena;
   end;
while ((c[lenc]=0) and(lenc>1)) do dec(lenc);
print;
end;

procedure division;
begin
1.正向存入数组2.一直比较试除,直到最后一位(要改大框架,所以就直接说思想了)end;

//main
begin
while not eof do
  begin
        init;
        input;
        plus;
        writeln;
        sub;
        writeln;
        mui;
        writeln;
   end;
end.
时间: 2024-10-14 03:28:14

高精包的相关文章

英语:漏屋-英语学习的真实方法及误区分析(转)

前 言 著名语言学家Greg Thomson说的:“外语学习的原理是如此之复杂,以至于没有人能说清楚:但掌握语言的过程又是如此之简单,以至于不需要说清楚.”讨论语言学习的原 理,是件非常复杂的事,在下当然也没把握能描述得很清楚.而且因为外语学习就连学术界都存在很多尖锐的争论,本人也不敢说自己有把握能把争论化解.但还是 决定先从简单入手,做些抛砖引玉的工作吧,探讨一下外语学习的真谛,特别是对大家在外语学习上普遍存在的误解进行分析和澄清,希望能对外语学习者有所帮 助,对外语教学工作着有所启发,就知足

js高阶函数

map()方法定义在JavaScript的Array中,我们调用Array的map()方法,传入我们自己的函数,就得到了一个新的Array作为结果: function pow(x) { return x * x; } var arr = [1, 2, 3, 4, 5, 6, 7, 8, 9]; arr.map(pow); // [1, 4, 9, 16, 25, 36, 49, 64, 81] reduce()把一个函数作用在这个Array的[x1, x2, x3...]上,这个函数必须接收两个

苹果高管斯洛基介绍A11仿生芯片背后的秘密!

9月13日凌晨,苹果在秋季发布会上正式推出了全新一代iPhone智能手机:iPhone 8.iPhone 8 Plus和iPhone X(发音为iPhone 10).这三款新设备的都搭载了全新的移动芯片,苹果称之为A11仿生(不是"Fusion"),并表示这是iPhone上有史以来最强大.最智能的芯片. 通过发布会介绍的A11仿生芯片细节,不难发现苹果自主定制芯片野心非常大,可谓雄心勃勃.并且随着时间的推移,针对半导体芯片的定制设计越来越多,A11达到了前所未有的高度.苹果在发布会中的

高通CEO莫伦科夫:5G手机从2019年开始将成主流(转)

据路透社9月15日报道,高通公司首席执行官预测,首款符合下一代移动标准的5G手机将于2019年在全球主要市场上市,这比预测时间要早一年. 作为世界顶级智能手机芯片制造商,高通公司首席执行官史蒂文?莫伦科夫(Steven Mollenkopf)在接受采访时表示,消费者和商务需求不断增长,迫使5G手机加速普及,将原来的2020年提前至2019年,以升级新的网络和设备. 5G商业化对于诸如华为.诺基亚和爱立信等网络设备制造商以及三星电子和苹果等手机制造商的新功能和设备升级需求来说至关重要.升级到新的网

三:QJM HDFS高可用

本文介绍的是HDFS的一种HA方案.虽然有checkpoint node \backup node等,但是不能实现自动的failover. http://hadoop.apache.org/docs/r2.6.3/hadoop-project-dist/hadoop-hdfs/HDFSHighAvailabilityWithQJM.html 1.在2.0.0版本以下,namenode是单个的,如果namenode宕机,就会导致整个集群不可用.QJM 是HA的一种实现方式,通过master/sla

《高可用MySQL》1 – Windows环境下压缩版MySQL安装

近日在读O'REILIY系列的<高可用MySQL>, 自然少不了主从(Master-Slave)配置和横向扩展相关的内容. Master-Slave这东西吧.在很多公司都是标配.开发中基本天天都用.遇到的问题自然也不少(如主从不同步,Master宕机).但操作权限很有限.有些东西,仅仅有自己看了.做了,才干真正知道原理是什么,也才干更好的去把握. 本文是高可用MySQL的第一篇读书笔记,主要记录Windows环境下压缩版MySQL(基于安装版的傻瓜式安装过程这里不再提及)的安装过程. 1. 从

要求用户输入宽和高,显示出长方形的面积。

import java.util.Scanner; /** * @author 蓝色以太 * 要求用户输入宽和高,显示出长方形的面积. */ public class Area { public static void main(String[] args) { Scanner sc=new Scanner(System.in); System.out.println("请输入长度:"); double length=sc.nextDouble(); System.out.printl

搭建一个redis高可用系统

一.单个实例 当系统中只有一台redis运行时,一旦该redis挂了,会导致整个系统无法运行. 单个实例 二.备份 由于单台redis出现单点故障,就会导致整个系统不可用,所以想到的办法自然就是备份(一般工业界认为比较安全的备份数应该是3份).当一台redis出现问题了,另一台redis可以继续提供服务. 备份 三.自动故障转移 虽然上面redis做了备份,看上去很完美.但由于redis目前只支持主从复制备份(不支持主主复制),当主redis挂了,从redis只能提供读服务,无法提供写服务.所以

java进程占用cpu过高分析是哪些线程

拿hbase基准测试列子来分析哪些线程使用比较高的cpu,环境是linux,基准测试命令: hbase org.apache.hadoop.hbase.PerformanceEvaluation  --rows=500000 --nomapred --presplit=5 --writeToWAL=true randomWrite 5 首先查看占用cpu最高的进程和线程id,执行命令: [[email protected] logs]$ ps Hh -eo pid,tid,pcpu | sort