第三次个人赛题目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 阅读(164) 评论(0) 编辑 收藏 举报