⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 divisor.cpp

📁 常用算法与数据结构原代码
💻 CPP
字号:
#include <iostream.h>
#include <fstream.h>

#define MAXN 10

ofstream out("a.txt");

void divisor(int n,int m,int d[],int dn)
{
	int s,p,t,b[MAXN];
	for (s=0;s<dn && d[s]>n;s++)
		;
	p=0;
	b[0]=s;
	t=d[b[p]];
	while (t!=n && p>=0)
	{
		if (p<m-1)
		{
			for (s=b[p];s<dn-1 && t+d[s]>n;s++)
				;
			if (s<=dn-1 && t+d[s]<=n)
			{
				b[++p]=s;
				t+=d[s];
				continue;
			}
		}
		t-=d[b[p]];
		while (p>=0 && b[p]==dn-1)
		{
			if (--p==-1)
				break;
			t-=d[b[p]];
		}
		if (p>=0)
			t+=d[++b[p]];
	}
	if (t==n)
	{
		out<<n<<"="<<d[b[0]];
		for (s=1;s<=p;s++)
			out<<"+"<<d[b[s]];
		out<<endl;
	}
	else
		out<<"No solution!"<<endl;
}

void main()
{
	int list[]={100,81,64,49,36,25,16,9,4,1};
	int i;
	for (i=50;i<300;i++)
		divisor(i,4,list,sizeof(list)/sizeof(int));
}

⌨️ 快捷键说明

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