2130 - [数值问题]高精度比较
<br />
<span>高精度比较(bigpas/c/cpp) </span>
<span>【问题描述】 </span>
<span>输入两个高精度正整数a和b(a,b的位数<=200),比较这两个数的的大小</span>
【输入格式】
<br />
<span><span style="font-size:14px;line-height:28px;">输入共两行,分别为a和b</span></span>
<span><span style="font-size:14px;line-height:28px;">【输出格式】</span></span>
<span><span style="font-size:14px;line-height:28px;">输出共一行,一个数</span></span>
<span><span style="font-size:14px;line-height:28px;">若a>=b 则输出结果1</span></span>
<span><span style="font-size:14px;line-height:28px;">若a<b 则输出结果2</span></span>
<span style="font-family:'Microsoft Yahei';font-size:14px;line-height:28px;background-color:#F5F5F5;">【输入样例1】 </span><br />
1234567890000
<span><span style="font-size:14px;line-height:28px;"><span style="font-family:'Microsoft Yahei';font-size:14px;line-height:28px;background-color:#F5F5F5;">1234567890001</span><br />
<span>【输出样例1】</span>
2
<br />
题目输入
题目输出
输入/输出样例
输入格式
输出格式
提示
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.
<br />