求高手帮忙写段程序,穷举法求方程的解

a1*x1+a2*x2+a3*x3+a4*x4.......=C其中a1..是系数,x1..是未知数a1,x1C都是正整数数字是下标,*是乘号... a1*x1+a2*x2+a3*x3+a4*x4.......=C
其中a1..是系数,x1..是未知数
a1 ,x1 C 都是正整数

数字是下标,*是乘号
展开
 我来答
Is_it_right
2007-11-10 · TA获得超过1031个赞
知道小有建树答主
回答量:410
采纳率:0%
帮助的人:411万
展开全部
/* 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);//如无输出则表明方程无正整数解

system("pause");
return 0;
}
icerwolfs
2007-11-10 · 超过27用户采纳过TA的回答
知道答主
回答量:64
采纳率:0%
帮助的人:83.7万
展开全部
void a(int a1,int a2,int a3,int a4,int C)
{
int i,j,k,l;
for (i=0;i<=C/a1;i++)
for (j=0;j<=C/a2;j++)
for (k=0;k<=C/a3;k++)
for (l=0;l<=C/a4;l++)
{
if (a1*i+a2*j+a3*k+a4*l == C)
{
printf("%d*%d+%d*%d+%d*%d+%d*%d==%d",a1,i,a2,j,a3,k,a4,l,C);
return;
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
12f3210
2007-11-10 · TA获得超过299个赞
知道小有建树答主
回答量:443
采纳率:0%
帮助的人:425万
展开全部
穷举就是按某种循环依次代入进去判断.
你这里未知数个数为4就用4层for循环试试
可以先是:0,0,0,0;
然后是:0,0,0,1
.......
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式