第三次个人赛题目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\n",a);
else if(len1<len2)
printf("%s\n",b);
else
{
k=strcmp(a,b);
if(k>=0)
printf("%s\n",a);
else
printf("%s\n",b);
}
}
else if(a[0]=='-'&&b[0]!='-')
{
printf("%s\n",b);
}
else if(a[0]!='-'&&b[0]=='-')
{
printf("%s\n",a);
}
else
{
k=0;
len1=strlen(a);
len2=strlen(b);
if(len1>len2)
printf("%s\n",b);
else if(len1<len2)
printf("%s\n",a);
else
{
k=strcmp(a,b);
if(k>=0)
printf("%s\n",b);
else
printf("%s\n",a);
}
}
}
return 0;
}
posted on 2017-06-19 14:01 cynchanpin 阅读(173) 评论(0) 收藏 举报
浙公网安备 33010602011771号