专栏文章

题解:P14495 [NCPC 2025] Arithmetic Adaptation

P14495题解参与者 2已保存评论 1

文章操作

快速查看文章及其快照的属性,并进行相关操作。

当前评论
1 条
当前快照
1 份
快照标识符
@min8oyb9
此快照首次捕获于
2025/12/01 22:23
3 个月前
此快照最后确认于
2025/12/01 22:23
3 个月前
查看原文

题解:P14495 [NCPC 2025] Arithmetic Adaptation

本题解使用分类讨论解决。

题意

求出两个非零整数相加等于另一整数的方案(只输出一种)。

思路

因为整数的大小只有几种情况,所以考虑分类讨论。
输入为 00,输出任意两个互为相反数的数字即可。
CPP
if(s==0){
	cout<<-999<<" "<<999;
}
输入为正数,需要注意的是,本题要求输出两个非零整数,所以需要特判 11 的情况。
CPP
if(s==1){
	cout<<2<<" "<<-1;
}
else if(s>1){
	cout<<1<<" "<<s-1;
}
输入为负数,同理,需要特判 1-1 的情况。
CPP
if(s==-1){
	cout<<-2<<" "<<1;
}
else{
	cout<<-1<<" "<<s+1;
}

完整代码

注意特判的位置,不能放在一般情况之后。
CPP
#include<bits/stdc++.h>
using namespace std;

signed main()
{
	int s;
	cin>>s;
	if(s==0){
		cout<<-999<<" "<<999;
	}
	else if(s==1){
		cout<<2<<" "<<-1;
	}
	else if(s>1){
		cout<<1<<" "<<s-1;
	}
	else if(s==-1){
		cout<<-2<<" "<<1;
	}
	else{
		cout<<-1<<" "<<s+1;
	}
	return 0;
}

评论

1 条评论,欢迎与作者交流。

正在加载评论...