[传智杯 #5 初赛] A-莲子的软件工程学
题目背景
在宇宙射线的轰击下,莲子电脑里的一些她自己预定义的函数被损坏了。
对于一名理科生来说,各种软件在学习和研究中是非常重要的。为了尽快恢复她电脑上的软件的正常使用,她需要尽快地重新编写这么一些函数。
题目描述
具体而言,给定两个整数 a , b a,b a,b,保证 b ≠ 0 b\neq 0 b=0。莲子要实现这样一个函数 fun ( a , b ) \operatorname{fun}(a,b) fun(a,b) 来将 b b b 的符号转移到 a a a 上。
具体而言, fun ( a , b ) = sgn ( b ) × ∣ a ∣ \operatorname{fun}(a,b)=\operatorname{sgn}(b)\times |a| fun(a,b)=sgn(b)×∣a∣。其中, sgn ( b ) = { 1 b > 0 − 1 b < 0 \operatorname{sgn}(b)=\begin{cases}1&b>0\\-1&b<0\end{cases} sgn(b)={1−1b>0b<0
换而言之:
- 如果 b b b 是正数,那么 fun ( a , b ) = + ∣ a ∣ = ∣ a ∣ \operatorname{fun}(a,b)=+|a|=|a| fun(a,b)=+∣a∣=∣a∣;
- 如果 b b b 是负数,那么 fun ( a , b ) = − ∣ a ∣ \operatorname{fun}(a,b)=-|a| fun(a,b)=−∣a∣。
输入格式
- 共一行两个整数 a , b a,b a,b。
输出格式
- 共一行一个整数 fun ( a , b ) \operatorname{fun}(a,b) fun(a,b) 的值。
样例 #1
样例输入 #1
-1 2
样例输出 #1
1
样例 #2
样例输入 #2
0 -4
样例输出 #2
0
样例 #3
样例输入 #3
-12345 -54321
样例输出 #3
-12345
提示
对于全部数据,保证 a , b a,b a,b 在 32 32 32 位有符号整型范围内,并且 b ≠ 0 b \neq 0 b=0。
C++实现
#include
using namespace std;
int main(){
int a,b;
cin>>a>>b;
int fun;
if(b>0){
fun =abs(a);
}else if(b<0){
fun=-abs(a);
}
cout<<“b=”<<b<<“,fun=”<<fun;
return 0;
}
后续:
接下来我会不断用C++来实现信奥比赛中的算法题、C++考级编程题实现、白名单赛事考题实现,感兴趣的请关注,我后续将继续分享相关内容