求高手帮忙写段程序,穷举法求方程的解
来源:百度知道 编辑:UC知道 时间:2024/05/09 12:26:31
a1*x1+a2*x2+a3*x3+a4*x4.......=C
其中a1..是系数,x1..是未知数
a1 ,x1 C 都是正整数
数字是下标,*是乘号
其中a1..是系数,x1..是未知数
a1 ,x1 C 都是正整数
数字是下标,*是乘号
/* VC++6.0 编译通过,请保存为.cpp文件 */
#include <iostream>
using namespace std;
int *a,*x,n,C;
void printx()
{
printf("X=");
for(int i=0;i<n;++i) printf("%3d ",x[i]);
printf("\n");
}//打印一个解
bool search(int k,int sum)
{
if(k==0) return sum==0;
else
for(int i=1;i<=sum/a[k-1];++i)
{
x[k-1]=i;
if(search(k-1,sum-a[k-1]*i)) printx();
}
return false;
}//搜索所有可能的解
int main()
{
printf("n="); scanf("%d",&n);//输入未知数个数n
printf("a="); a=new int[n];
for(int i=0;i<n;++i) scanf("%d",&a[i]);//输入a[i], i=0~(n-1)
printf("C="); scanf("%d",&C);//输入C
x=new int[n];
search(n,C);//如无输出则表明方程无正整数解