Problem5504--[数值问题]高精度比较

5504: [数值问题]高精度比较

[Creator : ]
Time Limit : 1.000 sec  Memory Limit : 128 MB

Description



高精度比较(bigpas/c/cpp) 

【问题描述】 

输入两个高精度正整数a和b(a,b的位数<=200),比较这两个数的的大小

【输入格式】


输入共两行,分别为a和b

【输出格式】

输出共一行,一个数

若a>=b 则输出结果1

若a<b  则输出结果2

【输入样例1】 
1234567890000

1234567890001

【输出样例1】

2


HINT

Const
    SIZE = 200;

Type
    hugeint = Record
        len : Integer;
        num : Array[1..SIZE] Of Integer;
    End;
var a,b:hugeint;
    s1,s2:string;
    i:integer;
Function over(a, b : hugeint) : integer;
    Var
        i : Integer;
    Begin
        If (a.len>b.len) Then
            Begin
                over :=1 ;
                Exit;
            End;
        If a.len < b.len Then
            Begin
                over := 2;
                Exit;
            End;
        For i := a.len DownTo 1 Do
            Begin
                If a.num[i] > b.num[i] Then
                    Begin
                        over := 1;
                        Exit;
                    End;
                If a.num[i] < b.num[i] Then
                    Begin
                        over := 2;
                        Exit;
                    End;
            End;
        over := 1;
    End;
   procedure datain;
   begin
    assign(input,'big.in');  assign(output,'big.out');
    reset(input); rewrite(output);
    readln(s1);
    readln(s2);
    a.len:=length(s1);
    b.len:=length(s2);
    for i:=1 to a.len do  a.num[i]:=ord(s1[a.len-i+1])-ord('0');
    for i:=1 to b.len do  b.num[i]:=ord(s2[b.len-i+1])-ord('0');
   end;
   begin
    datain;
    writeln(over(a,b));
   close(input);close(output);
   end.

Source/Category