• 1249 Problem Q


    问题 Q: 比大小

    时间限制: 1 Sec  内存限制: 128 MB 提交: 159  解决: 66 [提交][状态][讨论版]

    题目描述

    给你两个很大的数,你能不能判断出他们两个数的大小呢? 比如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
     1 #include <iostream>
     2 #include <string.h>
     3 
     4 using namespace std;
     5 
     6 char a[1111],b[1111];
     7 int cut;
     8 int na,nb;
     9 int main()
    10 {
    11     while(cin>>a>>b)
    12     {
    13         if(a[0]=='0'&&b[0]=='0')
    14             break;
    15         if(a[0]!='-'&&b[0]=='-')
    16         {
    17             cout<<"a>b"<<endl;
    18             continue;
    19         }
    20         if(a[0]=='-'&&b[0]!='-')
    21         {
    22             cout<<"a<b"<<endl;
    23             continue;
    24         }
    25         cut=0;
    26         if(a[0]=='-'&&b[0]=='-')    cut=1;
    27         na=strlen(a+cut);
    28         nb=strlen(b+cut);
    29         if(na>nb&&cut==0)
    30         {
    31             cout<<"a>b"<<endl;
    32             continue;
    33         }
    34         if(na>nb&&cut==1)
    35         {
    36             cout<<"a<b"<<endl;
    37             continue;
    38         }
    39         if(na<nb&&cut==0)
    40         {
    41             cout<<"a<b"<<endl;
    42             continue;
    43         }
    44         if(na<nb&&cut==1)
    45         {
    46             cout<<"a>b"<<endl;
    47             continue;
    48         }
    49         for(int i=cut;i<na+cut;i++)
    50         {
    51             if(a[i]>b[i])
    52             {
    53                 if(cut==0)
    54                 {
    55                     cout<<"a>b"<<endl;
    56                     cut=-1;
    57                     break;
    58                 }
    59                 else
    60                 {
    61                     cout<<"a<b"<<endl;
    62                     cut=-1;
    63                     break;
    64                 }
    65             }
    66             if(a[i]<b[i])
    67             {
    68                 if(cut==0)
    69                 {
    70                     cout<<"a<b"<<endl;
    71                     cut=-1;
    72                     break;
    73                 }
    74                 else
    75                 {
    76                     cout<<"a>b"<<endl;
    77                     cut=-1;
    78                     break;
    79                 }
    80             }
    81         }
    82         if(cut!=-1)
    83             cout<<"a==b"<<endl;
    84     }
    85     return 0;
    86 }
  • 相关阅读:
    C++ unordered_set运用实例
    C++ Multimap运用实例—查找元素
    C++ Multimap运用实例
    C++ Map运用实例
    C++ Set运用实例
    C++ list运用实例
    C++ vector使用实例
    c++ Array运用实例
    C++ int double float对应的长度以及二进制
    引用和指针有什么区别
  • 原文地址:https://www.cnblogs.com/asuml/p/5674005.html
Copyright © 2020-2023  润新知