注册 登录
编程论坛 C++教室

[求助]C++编程题目,明天交卷。。急。。大家帮下忙。。。。

小叶临风 发布于 2007-07-09 01:33, 1717 次点击
已知 6<=a<=30 15<=b,<=36,求出满足不定方程 2a+5b=126 的全部整娄组解。如(13,20)就是其中的一组解,并按此格式输出每组解。


18 回复
#2
小叶临风2007-07-09 01:33
真的很急啊。。。大家帮下忙。。。我明天要交卷的。。。555
#3
小叶临风2007-07-09 01:34

已知 6<=a<=30 15<=b,<=36,求出满足不定方程 2a+5b=126 的全部整数组解。如(13,20)就是其中的一组解,并按此格式输出每组解

#4
sy_1416182007-07-09 01:56

我看看哦~`

#5
小叶临风2007-07-09 01:56
没人知道吗。。。
#6
sy_1416182007-07-09 02:13

#include<iostream>
#include<vector>

int main()
{
using namespace std;
vector<int> x,y;
for(int a=6;a<=30;++a)
for(int b=15;b<=36;++b)
if((a*2+b*5)==126)
{
x.push_back(a);
y.push_back(b);
}

vector<int>::iterator ix=x.begin(),iy=y.begin();
while(ix!=x.end())
{
cout << "(" << *ix << "," << *iy << ")" << endl;
++ix;
++iy;
}

system("pause");
return(0);
}

#7
sy_1416182007-07-09 02:15
我用容器加迭代器写的。。没用数组。。书上说C++最好用VECTOR~~
有没有高手看看这个简单的小程序我哪里可以改进啊?总觉得不大好~~把2个解给疏离了,应该是一组的。。

[此贴子已经被作者于2007-7-9 2:16:46编辑过]

#8
小叶临风2007-07-09 02:47
回复:(小叶临风)[求助]C++编程题目,明天交卷。。急...

#include<iostream>
void main()
{
for(int a=6;a<=30;a++)
for(int b=15;b<=36;b++)
if(2*a+5*b==126)
cout<<"("<<a<<","<<b<<")"<<endl;
}

请楼上的看看,这样子做对不对???
#9
sy_1416182007-07-09 03:06

思想是对的。。
但是main()得用int定义
cout前面少个std::
还有在优先级没弄清楚前最好判断里加个括号总没错。。不过你这样也是对的
最后返回return(0);

#include<iostream>

int main()
{
using namespace std;
for(int a=6;a<=30;a++)
for(int b=15;b<=36;b++)
if((2*a+5*b)==126)
cout<<"("<<a<<","<<b<<")"<<endl;
system("pause");
return(0);
}

[此贴子已经被作者于2007-7-9 3:09:45编辑过]

#10
小叶临风2007-07-09 03:32

#include<iostream>

int main()
{
using namespace std;
for(int a=6;a<=30;a++)
for(int b=15;b<=36;b++)
if((2*a+5*b)==126)
cout<<"("<<a<<","<<b<<")"<<endl;
system("pause");
return(0);
}

这两处是不是有点问题?请楼上的兄弟再看看。。。不过还是谢谢你了。这么晚了还在帮我忙。。。感激不已。晚安~!

#11
sy_1416182007-07-09 11:21

没问题哦~~
第1处是申明用std命名空间
最后那个红色的可以去掉,是为了让你看到结果,不是一闪而过~~如果你不是在CMD下编译的话也可以去掉

#12
小叶临风2007-07-09 19:01

如果把这两处去掉的话,是不是也可的呢?

#13
sy_1416182007-07-09 21:52

第1处要么留着,要么在cout前面加std::
cout是在std命名空间里的

#14
wangchen21132007-07-10 14:22

#include <stdio.h>
#include <iostream.h>
int main()
{ int a,b;int i,j ,count[100][2];
for(i=0;i<100;i++)
for(j=0;j<2;j++)count[i][j]=0;
i=1;
for(b=15;b<=36;b++)
for(a=6;a<=30;a++)

if(2*a+5*b==126){count[i][0]=a;count[i][1]=b;i++;}
for(j=1;j<i;j++)cout<<"("<<count[j][0]<<","<<count[j][1]<<")"<<endl;

}


估计你用的是。net吧,我这个程序在vc6.0编译能运行的,你参考下。

#15
zhangjjie2007-07-11 21:20

#include<iostream>

using namespace std;
int main()
{
int a=6;
int b=15;
for (a+=1;a<=30)
for (b+=1;b<=36)
if (126==2*a+5*b)
cout<<a<<","<<b<<endl;
return 0;
}

我是用VC6.0写的,编译提示有两个错误,但是执行的结果却是没问题的,不知道是怎么回事..哪位达人能指点下,谢谢

[此贴子已经被作者于2007-7-11 21:25:43编辑过]

#16
jiaju1112007-07-12 11:40
for 语句头有问题
#17
smithallen2007-07-12 16:27

15楼:
#include<iostream.h>
//using namespace std;

int main()
{
int a;
int b;
for (a=6;a<=30;a++)
for (b=15;b<=36;b++)
if (126==2*a+5*b)
cout<<"("<<a<<","<<b<<")"<<endl;
return 0;
}

你用的标准的C++,即ANSI C++,而VC6.0只是一个编译环境,并非支持标准C++,所以在此环境下,不能调试通过;


#18
puying20082007-07-12 20:11

#include<iostream.h>
void main()
{
int a;
int c;

for(a=6;a<=30;a++)
{
c=126-2*a;
if(c%5==0)
{
if(15<=c/5&&c/5<=36)
cout<<"("<<a<<","<<c/5<<")"<<endl;
}
}
}

你看看

#19
zhaozhiwei2007-07-19 19:00

#include<iostream>
using namespace std;
int main()
{
int a;
int b;
for (a=6;a<=30;a++)
for (b=15;b<=36;b++)
if (2*a+5*b==126)
cout<<"("<<a<<","<<b<<")"<<endl;
return 0;
}

只有本站会员才能查看附件,请 登录

1