2130 - [数值问题]高精度比较
时间限制 : 1 秒
内存限制 : 128 MB
<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 />
题目输入
题目输出
输入/输出样例
输入格式
输出格式
C++解答
#include<cstdio> #include<cstdlib> #include<cstring> using namespace std; char a1[202],b1[202]; int a[202],b[202]; int main() { gets(a1); gets(b1); a[0]=strlen(a1); b[0]=strlen(b1); for(int i=1;i<=a[0];++i) a[i]=a1[a[0]-i]-48; for(int i=1;i<=b[0];++i) b[i]=b1[b[0]-i]-48; if(a[0]<b[0])printf("2"); if(a[0]>b[0])printf("1"); if(a[0]==b[0]) { for(int i=b[0];i>=1;--i) { if(a[i]<b[i]) { printf("2"); break; } if(a[i]>b[i]) { printf("1"); break; } } } system("pause"); return 0; }
Java解答
package DaShu; import java.math.BigDecimal; import java.math.BigInteger; import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner cin=new Scanner(System.in); BigInteger a,b; a=cin.nextBigInteger(); b=cin.nextBigInteger(); if (a.compareTo(b)==-1) { System.out.println(2); } else System.out.println(1); } }