首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> C++ >> C++ 入門

NYOJ 73:大整數比較——字符串模擬與 Java BigInteger

     編輯:C++ 入門

問題

比較兩個最多 1000 位的十進制整數(可為負),輸出 a>b、a 或 a==b。

C 语言模擬法

  • 先比較符號:正數大於負數。
  • 同號時比較長度(去掉符號後),長者大(正數)或小(負數)。
  • 長度相同則逐位字符比較。
#include <stdio.h>
#include <string.h>
int main() {
    char a[1005], b[1005];
    while (scanf("%s%s",a,b) && (a[0]!='0' || b[0]!='0')) {
        int la=strlen(a), lb=strlen(b);
        if (la>lb) { if (a[0]=='-') puts("ab"); }
        else if (lab"); else puts("ab[i]) { puts("ab"); break; }
                }
            } else if (a[0]!='-' && b[0]!='-') {
                for (int i=0;ib[i]) { puts("a>b"); break; }
                    else if (a[i]b");
        }
    }
    return 0;
}

Java BigInteger 一行解決

import java.math.BigInteger;
import java.util.Scanner;
public class Main {
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        while (sc.hasNext()) {
            BigInteger a=sc.nextBigInteger(), b=sc.nextBigInteger();
            if (a.equals(BigInteger.ZERO) && b.equals(BigInteger.ZERO)) break;
            int cmp=a.compareTo(b);
            if (cmp>0) System.out.println("a>b");
            else if (cmp==0) System.out.println("a==b");
            else System.out.println("a
							
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved