题目让我们求出两个数 \(a\) 和 \(b\),让其和等于 \(s\)。
这里提出一种思路:令 \(a\) 为 \(s-1\),\(b\) 为 \(1\)。因为这两个数加起来一定等于 \(s\)。
看到数据范围是 \(-999 \le s \le 999\)。在这个规模的数据中,有两种情况要特殊处理。
特殊情况 1
两个数都不能是 \(0\)。如果 \(s\) 是 \(1\),\(a\) 就会等于 \(0\)。针对这种情况,要自己造一种符合要求的答案。
特殊情况 2
两个数都不能超过三位。即 \(-999 \le a,b \le 999\)。对于 \(-999\) 这组数据,\(a\) 是 \(-1000\)。不符合要求,需要自己造一组符合要求的答案。
#include<bits/stdc++.h>
using namespace std;
int main(){
int n;
scanf("%d",&n);
if(n!=1&&n!=-999){//普通情况
printf("%d 1",n-1);
}else if(n==1){//特殊情况 1
printf("2 -1");
}else{//特殊情况 2
printf("-998 -1");
}
return 0;
}
浙公网安备 33010602011771号