| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 526 人关注过本帖
标题:大数比较,高手帮忙!!!
只看楼主 加入收藏
yshx88
Rank: 2
等 级:论坛游民
帖 子:57
专家分:68
注 册:2013-10-20
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:8 
大数比较,高手帮忙!!!
给你两个很大的数,你能不能判断出他们两个数的大小呢?
比如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
2013-10-22 23:17
qunxingw
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:贵宾
威 望:24
帖 子:1676
专家分:7295
注 册:2011-6-30
收藏
得分:0 
先看正负,再看字符串长度,比较字符确定大小

www.qunxingw.wang
2013-10-22 23:31
Susake
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:女儿国的隔壁
等 级:贵宾
威 望:23
帖 子:2288
专家分:6481
注 册:2012-12-14
收藏
得分:0 

仰望星空...........不忘初心!
2013-10-22 23:34
yshx88
Rank: 2
等 级:论坛游民
帖 子:57
专家分:68
注 册:2013-10-20
收藏
得分:0 
找不到,没有。

我的世界每天开出一朵花
2013-10-23 12:04
Susake
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:女儿国的隔壁
等 级:贵宾
威 望:23
帖 子:2288
专家分:6481
注 册:2012-12-14
收藏
得分:20 
回复 4楼 yshx88
程序代码:
#include <stdio.h>
#include <string.h>
#define N 1002
char a[N], b[N];

void compare(char *a, char *b) {
    int len1, len2, i, t;
    len1 = strlen(a); len2 = strlen(b); t = 0;
    if(a[0] != '-' && b[0] != '-') {
        if(len1 > len2) printf("a>b\n");
        else if(len1 == len2) {
            for(i = 0; i < len1; i++) {
                t++;
                if((a[i] - '0') == (b[i] - '0')) ;
                else if((a[i] - '0') < (b[i] - '0')) {
                    printf("a<b\n");
                    break;
                }
                else {
                    printf("a>b\n");
                    break;
                }
                if(t == len1) printf("a==b\n");
            }
        }
        else printf("a<b\n");
    }
    if(a[0] == '-' && b[0] == '-') {
        if(len1 > len2) printf("a<b\n");
        else if(len1 == len2) {
            for(i = 1; i < len1; i++) {
                t++;
                if((a[i] - '0') == (b[i] - '0')) ;
                else if((a[i] - '0') > (b[i] - '0')) {
                    printf("a<b\n");
                    break;
                }
                else if((a[i] - '0') < (b[i] - '0')){
                    printf("a>b\n");
                    break;
                }
                if(t == len1 - 1) printf("a==b\n");
            }
        }
        else printf("a>b\n");
    }
    if(a[0] == '-' && b[0] != '-') printf("a<b\n");
    if(b[0] == '-' && a[0] != '-') printf("a>b\n");
}

int main() {
    while(scanf("%s%s", a, b) != EOF)  compare(a, b);
    return 0;
}
....好吧,直接复制给你..!

仰望星空...........不忘初心!
2013-10-23 12:43
yshx88
Rank: 2
等 级:论坛游民
帖 子:57
专家分:68
注 册:2013-10-20
收藏
得分:0 
很好,比较容易懂。在vc上可以运行成功!但是,我在我们学校程序测评系统上提交的时候,要严格符合输入输出格式,所以出现了答案错误。看来需要改一改格式了!
非常感谢!

我的世界每天开出一朵花
2013-10-23 21:03
Susake
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:女儿国的隔壁
等 级:贵宾
威 望:23
帖 子:2288
专家分:6481
注 册:2012-12-14
收藏
得分:0 
回复 6楼 yshx88
对的...改下格式就行了...毕竟这个在南阳oj上是能A的...!
加油!

仰望星空...........不忘初心!
2013-10-23 21:09
Susake
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:女儿国的隔壁
等 级:贵宾
威 望:23
帖 子:2288
专家分:6481
注 册:2012-12-14
收藏
得分:0 
哦哦..刚刚看到好像是0 0结束,你加个判断应该就好了..!

仰望星空...........不忘初心!
2013-10-23 21:12
yshx88
Rank: 2
等 级:论坛游民
帖 子:57
专家分:68
注 册:2013-10-20
收藏
得分:0 
谢谢!

我的世界每天开出一朵花
2013-10-23 22:33
快速回复:大数比较,高手帮忙!!!
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.041869 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved