生活随笔
收集整理的這篇文章主要介紹了
NYOJ 73 比大小
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
比大小
時間限制:
3000?ms ?|? 內存限制:
65535?KB 難度:
2
描述
給你兩個很大的數,你能不能判斷出他們兩個數的大小呢?
比如123456789123456789要大于-123456
輸入每組測試數據占一行,輸入兩個不超過1000位的10進制整數a,b
數據保證輸入的a,b沒有前綴的0。
如果輸入0 0表示輸入結束。測試數據組數不超過10組輸出如果a>b則輸出“a>b”,如果a<b則輸出“a<b”,如果相等則輸出“a==b”。樣例輸入 111111111111111111111111111 88888888888888888888
-1111111111111111111111111 22222222
0 0 樣例輸出 a>b
a<b AC碼:(C語言版) #include<stdio.h>
#include<string.h>
int main()
{int i,lena,lenb;char a[1005],b[1005];while(scanf("%s%s",a,b)&&(a[0]!='0')&&(b[0]!='0')){lena=strlen(a);lenb=strlen(b);if(lena>lenb) // 表示a的位數大于b的位數{if(a[0]=='-') // 表示a為負數,位數越大值越小printf("a<b\n");elseprintf("a>b\n");}else if(lena<lenb){if(b[0]=='-')printf("a>b\n");elseprintf("a<b\n");}else{if((a[0]=='-')&&(b[0]=='-')){for(i=0;(a[i]!='\0')&&(b[i]!='\0');i++){if(a[i]>b[i]){printf("a<b\n");break;}else if(a[i]<b[i]){printf("a>b\n");break;}}if((a[i]=='\0')&&(b[i]=='\0'))printf("a==b\n");}else if((a[0]!='-')&&(b[0]!='-')){for(i=0;(a[i]!='\0')&&(b[i]!='\0');i++){if(a[i]>b[i]){printf("a>b\n");break;}else if(a[i]<b[i]){printf("a<b\n");break;}}if((a[i]=='\0')&&(b[i]=='\0'))printf("a==b\n");}else if((a[0]=='-')&&(b[0]!='-'))printf("a<b\n");else if((a[0]!='-')&&(b[0]=='-'))printf("a>b\n");}}return 0;
}
AC碼:(java版) import java.math.BigDecimal;
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();BigInteger b=sc.nextBigInteger();if(a.equals(BigInteger.ZERO)&&b.equals(BigInteger.ZERO))break;int x=a.compareTo(b);if(x==1)System.out.println("a>b");else if(x==0)System.out.println("a==b");elseSystem.out.println("a<b");}}}
總結
以上是生活随笔為你收集整理的NYOJ 73 比大小的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。