第1关:整数对
任务描述
本关任务:用蛮力法求整数对。
设b是正整数a去掉一个数字后的正整数,对于给出的正整数n,寻求满足和式a+b=n的所有正整数对a,b。
编程要求
根据提示,在右侧编辑器补充代码,计算并输出所有正整数对a,b。
测试说明
平台会对你编写的代码进行测试:
测试输入: 25;
预期输出:
` (23,2)
25共有以上1个解
测试输入: 100;
预期输出:
(91,9) (95,5)
100共有以上2个解
代码:
#include <iostream>
#include<vector>
#include<string>
using namespace std;
int to_int(const string& s,int idx)
{
int res=0;
for (int i=0;i<s.length();++i)
{
if (i==idx) continue;
res=res*10+s[i]-'0';
}
return res;
}
int main()
{
int n;cin>>n;
scanf("%ld",&n);
/********* Begin *********/
vector<pair<int,int>> ans;
for (int i=0;i<n;++i)
{
string s=to_string(i);
for (int j=0;j<s.length();++j)
{
int tmp=to_int(s,j);
if (i+tmp==n)
{
ans.emplace_back(i,tmp);
}
}
}
cout<<' ';
for (int i=0;i<ans.size();++i)
{
cout<<"("<<ans[i].first<<","<<ans[i].second<<")";
if (i!=ans.size()-1) cout<<' ';
}
cout<<endl;
/********* end *********/
printf(" %ld共有以上%ld个解\n",n,ans.size());
}