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”,如果相等则输出“a==b”。

样例输入111111111111111111111111111 88888888888888888888

-1111111111111111111111111  22222222

0 0

样例输出a>b

a<b*/

<span style="font-size:18px;"># include<stdio.h>
#include<string.h>
int main()
{
 int i,j;
 char a[1002],b[1002];
 while(scanf("%s %s",a,b),a[0]!='0'&&b[0]!='0')
 {
  i=strlen(a);
  j=strlen(b);
  if(a[0]!='-'&&b[0]=='-') printf("a>b\n");
        if(a[0]=='-'&&b[0]!='-') printf("a<b\n");
        if(a[0]!='-'&&b[0]!='-')
  {
        if(i>j) printf("a>b\n");
        if(i<j) printf("a<b\n");
        if(i==j)
  {
        if(strcmp(a,b)>0) printf("a>b\n");
        if(strcmp(a,b)<0) printf("a<b\n");
        if(strcmp(a,b)==0) printf("a==b\n");
 }
 }
        if(a[0]=='-'&&b[0]=='-')
 {
       if(i>j) printf("a<b\n");
       if(i<j) printf("a>b\n");
       if(i==j)
    {
       if(strcmp(a,b)>0) printf("a<b\n");
       if(strcmp(a,b)<0) printf("a>b\n");
       if(strcmp(a,b)==0) printf("a==b\n");
 }
 }
 }
 return 0;
 }
</span>

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-08-30 04:10:53

nyoj大数问题 比大小的相关文章

NYOJ 大数类总结(java)

棋盘覆盖 题目链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=45 样例输入 3 1 2 3 样例输出 1 5 21 代码如下: import java.io.*; import java.util.*; import java.math.BigDecimal; import java.math.BigInteger;//声明BigInteger大数类 public class Main { public static void main(

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

大数加法、减法、乘法

大数四则运算--C++实现 大数处理--c++实现 本课题来自我的c++编程作业,文章利用大数处理类,类名:hugeNumber来对大数(编译器自定义的数值类型无法处理的数)进行四则运算(大数加法.大数减法及大数乘法的运算,除暂时没实现)和按精度四舍五入,自定义科学计数法等.内容广泛涉及运算符重载.字符连接.字符加减和字符乘除等作者原创函数.重要提示:本文涉及的所有函数使用的进制皆为10进制.(备注:已将该博客搬迁至CSDN) 一.解题思路 1 核心思想 文章用hugeNumber类对大数进行操

【Java】-BigInteger大数类的使用【超强Java大数模板 总结】

1. 单元变量常用大数操作: import java.util.Scanner; import java.math.*; public class Main{ public static void main(String args[]){ Scanner cin= new Scanner(System.in); //使用Sacnner类创建cin对象 BigInteger a, b;//创建大数对象 while(cin.hasNext()){ a=cin.nextBigInteger(); b=

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 1233 差值(字符串排序+大数减法)

题意T组测试数据,每组数据给你n(0<n<=1000)个无符号整型范围内的数,把这些数字任意排列后连接成一个大数,求能排出的所有数当中最大的与最小的两个数的差值.例如{1, 2}, 最大为21,最小为12,差值为9. 样例输入131 2 3 样例输出198 思路乍一看是个大数问题,然而后来发现排序才是这道题的重点. 一开始想的是按数字的大小排序,但显然不对.例如{9, 10},按数字排序的话9 < 10,则最小值为910,但是显然109更小. 后来想到按字典序排,并且深信不疑的WA了两次

nyoj 155 求高精度幂 【大数】

做了一下午,总算做出来了!! 思路:将R转换成整数,同时计算好小数的个数,计算整数的次幂之后,然后根据规律将小数点适当的时候输出(如有3位实际小数,则应在第36位输出小数点) 链接http://acm.nyist.net/JudgeOnline/problem.php?pid=155 代码: #include<stdio.h> #include<string.h> int main() { int i, j, n, doc, ans[200]; //doc是逗号后面实际的位数 ch

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”. 样例输入 111111111111

Nyoj 114 某种序列(大数)

某种序列 时间限制:3000 ms  |  内存限制:65535 KB 难度:4 描述 数列A满足An = An-1 + An-2 + An-3, n >= 3 编写程序,给定A0, A1 和 A2, 计算A99 输入 输入包含多行数据 每行数据包含3个整数A0, A1, A2 (0 <= A0, A1, A2 <= 100000000) 数据以EOF结束 输出 对于输入的每一行输出A99的值 样例输入 1 1 1 样例输出 69087442470169316923566147 #inc