第三次个人赛题目1【大数】

问题 A: 做不出来踢协会!

。。

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

题目描写叙述

这是今天最水的一道题,假设没写出来的,呵呵。踢协会。

给你两个整数a和b。

输出较大的数,若两个数相等输出任一个都能够。

这么水啊。。

输入

输入有多组測试数据。每组数据有a和b两个整数。

小提示:数据保证不会有前导0。

输出


输出最后结果。

例子输入

0 0

例子输出

0

提示

逗你们玩的,不会踢你们啦,暑期培训就快结束了,希望大家继续努力。


只是看在你们来看Hint的份上。提醒下:注意整数的长度。

仅仅能提醒这么多了。

思路:

      这道题比較坑,wa了无数次最终对了!这道题必须首先得推断正负号,然后再进一步的比較,假设都为正,就依照先比較长度,肯定是长的大,短的小。假设长度相等。则再用字符串比較函数进行比較。假设都是负的,则将其结果反过来输出即可了。(在正数中)让输出a的,你就输出b,让输出b的你就输出a;假设是有正有负。你就输出正的就是最大的。详细看代码:

#include <stdio.h>
#include <string.h>
#include <math.h>
#include <algorithm>
using namespace std;
char a[5000],b[5000];
int main()
{
	int len1,len2,k;
	while(scanf("%s%s",a,b)!=EOF)
	{
		if(a[0]!='-'&&b[0]!='-')
		{
		k=0;
		len1=strlen(a);
		len2=strlen(b);
		if(len1>len2)
			printf("%s
",a);
		else if(len1<len2)
			printf("%s
",b);
		else
		{
		k=strcmp(a,b);
		if(k>=0)
			printf("%s
",a);
		else
			printf("%s
",b);
	   }
       }
       else if(a[0]=='-'&&b[0]!='-')
       {
       	printf("%s
",b);
       }
       else if(a[0]!='-'&&b[0]=='-')
       {
       	printf("%s
",a);
       }
       else
       {
       	k=0;
		len1=strlen(a);
		len2=strlen(b);
		if(len1>len2)
			printf("%s
",b);
		else if(len1<len2)
			printf("%s
",a);
		else
		{
		k=strcmp(a,b);
		if(k>=0)
			printf("%s
",b);
		else
			printf("%s
",a);
	   }
       }
	}
	return 0;
}


 

原文地址:https://www.cnblogs.com/cynchanpin/p/7048408.html