ACM_绝对值

100块钱都不给我

Time Limit: 2000/1000ms (Java/Others)

Problem Description:

  今天是广财的ACM周赛,小光来到广财实验楼,想来蹭一下素拓分(其实这场没有素拓分),突然发现前面赛场怎么有人在争吵?
旭能神:“我大老远跑来A题,拿了一血,100块钱都不给我”
“我抢劫你什么,我是抢劫的人吗?臭不要脸还在笑,100块钱都不给我”
。。。。。。
小光拨开人群,终于知道旭能神拿一血的题目是什么:
给定一个数,求它的绝对值。 

Input:

输入包含多组测试数据,每组数据包含一个整数(long long范围内,%lld).

Output:

对于每组数据,输出答案,占一行。

Sample Input:

8
-2

Sample Output:

8
2
解题思路:这题有个陷阱,即负数的最小值的绝对值还要比最大值正数大1,直接使用abs会导致溢出,因此用字符串处理。长度开30位就够了,long long20位
 1 #include<bits/stdc++.h>
 2 using namespace std;
 3 int main()
 4 {
 5     char s[30];
 6     while(cin>>s){
 7         if(s[0]!='-')cout<<s<<endl;
 8         else{
 9             for(int i=1;i<(int)strlen(s);++i)cout<<s[i];
10             cout<<endl;
11         }
12     }
13     return 0;
14 }
 

猜你喜欢

转载自www.cnblogs.com/acgoto/p/8983586.html