3309595_wa.cc

来自「北大大牛代码 1240道题的原代码 超级权威」· CC 代码 · 共 59 行

CC
59
字号
#include <cmath>
#include <vector>
#include <algorithm>

using namespace std;

vector <int> ans;

int posn(int n)
{
	int y = n % 11;
	int x = n / 11;
	return y < 10 ? 10 * x + y : -1;
}

int main()
{
	int n, r;
	int base;

	scanf("%d",&n);
	base = 1;
	ans.clear();
	while (base <= n)
	{
		int tn   = n / base;
		int last = n % base;
		r = posn(tn);
		if (r!=-1&&last%2==0)
		{
			ans.push_back(r*base+last/2);
		}

		r = posn(tn - 1);
		if (r!=-1&&(last+base)%2==0)
		{
			ans.push_back(r*base+(last+base)/2);
		}
		base *= 10;
	}
	sort(ans.begin(),ans.end());
	printf("%d\n",ans.size());
	for(int i = 0; i < ans.size(); i++)
	{
		if(i&&ans[i]==ans[i-1])
			continue;
		printf("%d + ",ans[i]);
		int l1 = (int)log10(ans[i])+1;
		int l2 = (int)log10(n-ans[i])+1;
		l1 = l1-l2-1;
		for(int j = 0; j < l1; j++)
			putchar('0');
		printf("%d",n-ans[i]);
		printf(" = %d\n",n);
		
	}
	return 0;
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?