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

我的代码显得有点臃肿。

 1 #include<iostream>
 2 using namespace std;
 3 #include<string.h>
 4 char a[1011],b[1011];
 5 int main()
 6 {
 7     int i;
 8     while(cin>>a>>b,a[0]!=‘0‘||b[0]!=‘0‘)
 9     {
10         if(a[0]==‘-‘||b[0]==‘-‘)
11         {
12             if(a[0]==‘-‘&&b[0]!=‘-‘)
13             {
14                 cout<<"a<b"<<endl;
15                 continue;
16             }
17             else if(a[0]!=‘-‘&&b[0]==‘-‘)
18             {
19                 cout<<"a>b"<<endl;
20                 continue;
21             }
22             else
23             {
24                 if((int)strlen(a)>(int)strlen(b))
25                 {
26                     cout<<"a<b"<<endl;
27                     continue;
28                 }
29                 else if((int)strlen(a)<(int)strlen(b))
30                 {
31                     cout<<"a>b"<<endl;
32                     continue;
33                 }
34                 else
35                 {
36                     for(i=1;i<(int)strlen(a);i++)
37                     {
38                         if(a[i]>b[i])
39                         {
40                             cout<<"a<b\n";
41                             break;
42                         }
43                         else if(a[i]<b[i])
44                         {
45                             cout<<"a>b\n";
46                             break;
47                         }
48                     }
49                     if(i>=(int)strlen(a))
50                         cout<<"a==b\n";
51                 }
52             }
53         }
54         else
55         {
56             if((int)strlen(a)>(int)strlen(b))
57             {
58                 cout<<"a>b"<<endl;
59                 continue;
60             }
61             else if((int)strlen(a)<(int)strlen(b))
62             {
63                 cout<<"a<b"<<endl;
64                 continue;
65             }
66             else
67             {
68                 for(i=0;i<(int)strlen(a);i++)
69                 {
70                     if(a[i]>b[i])
71                     {
72                         cout<<"a>b\n";
73                         break;
74                     }
75                     else if(a[i]<b[i])
76                         {
77                             cout<<"a<b\n";
78                             break;
79                         }
80                 }
81                 if(i>=(int)strlen(a))
82                     cout<<"a==b\n";
83             }
84
85         }
86     }
87     return 0;
88 }
 1
 2 #include<iostream>
 3 #include<string>
 4 using namespace std;
 5
 6 int main()
 7 {
 8     string a,b;
 9     while(cin>>a>>b)
10     {
11         if(a=="0"&&b=="0")
12             return 0;
13         if(a==b)
14             cout<<"a==b"<<endl;
15         else if(a[0]==‘-‘&&b[0]==‘-‘)
16             {
17                 if(a.substr(1,string::npos)>b.substr(1,string::npos)||a.length()>b.length())
18                     cout<<"a<b"<<endl;
19                 else cout<<"a>b"<<endl;
20             }
21         else if(a>"0"&&b>"0"||a<"0"&&b<"0"&&a.length()>b.length()||a>b)
22                 cout<<"a>b"<<endl;
23         else if(a<"0"&&b>"0"&&a.length()>b.length()||a>b)
24                 cout<<"a<b"<<endl;
25
26     }
27 }        
时间: 2024-08-27 11:41:49

NYOJ 73 比大小的相关文章

nyoj 73 比大小 【java大数】

java大数. 代码: import java.util.Scanner; import java.math.*; public class Main{ public static void main(String[] args){ Scanner cin = new Scanner(System.in); BigInteger a, b; BigInteger t = BigInteger.valueOf(0); a = cin.nextBigInteger(); b = cin.nextBi

NYOJ 73 比大小【字符串比较】

没看清题意,导致WA了两次,当相等的时候,要输出a==b,我也是醉了 比大小 时间限制:3000 ms  |  内存限制:65535 KB 难度:2 描述 给你两个很大的数,你能不能判断出他们两个数的大小呢? 比如123456789123456789要大于-123456 输入 每组测试数据占一行,输入两个不超过1000位的10进制整数a,b 数据保证输入的a,b没有前缀的0. 如果输入0 0表示输入结束.测试数据组数不超过10组 输出 如果a>b则输出"a>b",如果a&l

南阳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",如果相等则输出&qu

后台分页工具类(.net)

下面是工具类. 1 publicclassPagingHelper<T>where T :new() 2 { 3 privateint_PageIndex=1; 4 privateint_PageSize=10; 5 privateint_Total=0; 6 privateint_ShowNum=5; 7 privateobject_DataSource=null; 8 privateList<T>_PageData; 9 /// <summary> 10 /// 1

Swing-email(转)

项目结构: 运行效果: 如果你感兴趣,请不要那我的邮箱做测试!!!! ========================================================== 下面是代码部分 ========================================================== /SendMail/src/com/b510/sendmail/main/SendMailMain.java 1 package com.b510.sendmail.main;

第六周作

题目7-1 高速公路超速处罚 1.实验代码 #include <stdio.h> int main (){ int a,b; float c; scanf("%d %d",&a,&b); c=(a-b)*100.0/b; if(c<10) printf("OK"); else if(c<50) printf("Exceed %.0f%%. Ticket 200",c); else printf("

CKEditor4x word导入不保存格式的解决方案

后台上传文档时,目前功能都通过word直接复制黏贴实现,之前和word控件朋友一起测试找个问题,原始代码CK4.X没有找个问题. 第一时间排查config.js的配置发现端倪,测试解决! 由于配合ckfinder来进行附件上传,所以修改了自定义basic的所有配置参数具体代码如下: 1 /* 2 Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved. 3 For licensing, see LICE

nyoj大数问题 比大小

 /*比大小 时间限制: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",如果相等则输出

nyoj 276-比较字母大小 (顺序比较, 逆序输出)

276-比较字母大小 内存限制:64MB 时间限制:3000ms 特判: No 通过数:13 提交数:15 难度:1 题目描述: 任意给出两个英文字母,比较它们的大小,规定26个英文字母A,B,C.....Z依次从大到小. 输入描述: 第一行输入T,表示有T组数据: 接下来有T行,每行有两个字母,以空格隔开: 输出描述: 输出各组数据的比较结果,输出格式见样例输出: (注意输出严格按照输入的顺序即输入是A B,输出时必须是A?B) 样例输入: 复制 3 A B D D Z C 样例输出: A>B