88 条题解
-
0
虽然不敢说是最短的,但前5短肯定可以。
#include <bits/stdc++.h> using namespace std; int main() { int a; cin>>a; if (a<0) cout<<a*-1;//因为是负数,所以乘-1(“负负得正”)。 else cout<<a; return 0; }
等等,别走,这里还有更简单的。
#include <bits/stdc++.h> using namespace std; int main() { int a; cin>>a; cout<<abs(a); return 0; }
这个还能化简。
#include <bits/stdc++.h> using namespace std; int main() { int a;cin>>a;cout<<abs(a); return 0; }
呵呵,这个绝对是最短的#include <bits/stdc++.h> int main(){int a;std::cin>>a;std::cout<<abs(a);
这个才是
-
0
我总结了一下几位同学的答案(和我自己的),共有以下几种方式: 第一种(不用函数)
#include <bits/stdc++.h> using namespace std; int main() { int n; cin >> n; if (n >= 0)/*这里0可以直接输出*/ { cout << n; } else { cout << 0 - n;/*因为是负数, 减掉负数就是加正数*/ /*cout << n * -1; */ /*这是另一种,负数乘负数, 负负得正,乘一结果不变*/ } return 0; /*用这种方法的人不少,我就不专门写明作者了*/
第二种(使用fabs函数和abs函数)
#include <bits/stdc++.h> using namespace std; int main() { int a; cin >> a; cout << fabs(a); /*cout << abs(a)*/ return 0; } /*fabs是hetao794786的答案,好方便,确实厉害 (abs的人也不少,我就不专门写明了) 但是fabs函数和abs函数我不知道具体功能,我会去查的。*/
第三种
#include <iostream> #include <cmath> using namespace std; int main() { int m; cin>>m; cout<<sqrt(m*m); return 0; } /*这是hetao23102384的答案 开方我也想这么做的,然后做了个n * n / n然后输入负数输出还是负数,我人傻了,想了想,是我自己蠢了。*/
好了,就总结这么多,如果有错请指出,我刚学C++错了正常,这么多方法我只试过一个。
信息
- ID
- 345
- 时间
- 1000ms
- 内存
- 16MiB
- 难度
- 5
- 标签
- 递交数
- 11362
- 已通过
- 4708
- 上传者