设这四个数字为a,b,c,d他们都是在(0,7.11]中的数。
此外设x,y为两个实数.先找到满足x+y=7.11和x*y=7.11的数字.这个不难吧.由于都是正实数,所以0<x<=7.11&&0<y<=7.11。可以直接列举出来。
作出的假设一组结果为X和Y
可以设a+b=X&&a*b=X用上边同样的方法可以找到a和b.
同理设c+d=Y&&c*d=Y一样得到c和d.
最后得到的a,b,c,d就是所求的结果。
具体的语言实现很简单了!
此外设x,y为两个实数.先找到满足x+y=7.11和x*y=7.11的数字.这个不难吧.由于都是正实数,所以0<x<=7.11&&0<y<=7.11。可以直接列举出来。
作出的假设一组结果为X和Y
可以设a+b=X&&a*b=X用上边同样的方法可以找到a和b.
同理设c+d=Y&&c*d=Y一样得到c和d.
最后得到的a,b,c,d就是所求的结果。
具体的语言实现很简单了!
解决方案 »
- System.IO.IOException: 句柄无效
- gridview 问题,高手帮忙解答
- C# web中如何在FTP上创建文件?
- 如何将数据库日期字段在页面中横向循环显示
- C# 访问注册表的问题?
- remoting服务器宿主到iis上,第一次运行客户端程序正常,关掉后,再次运行就说无法连接到服务器
- 远程服务器返回错误: (406) 不可接受。是什么错误?
- c#中struct也可使用属性,方法,那它与class在使用上有何区别?
- 异常问题???
- PictureBox怎样能够滚动条显示图片??
- 用iis在一台机子上面做多个网站和虚拟目录怎么设置啊
- 高分求调用vc的dll参数的方法,包括byte*和double*以及int*,分不够还可以加!
这个题目我的思路首先想到的是算法的时间复杂度问题,因为蛮力法太耗时间了
具体的算法见下面,这个考题不是考的算法问题,而是计算机系统结构与组成.这个涉及到了浮点数的乘法问题了!
C++ 6.0的代码如下:
#include<iostream.h>
#include<math.h>
void main(){
double a,b,c,d;
int count=0;
for(a=0.01;a<7.11;a=a+0.01){
for(b=0.01;b<7.11;b=b+0.01){
for(c=0.01;c<7.11;c=c+0.01){
d=7.11-a-b-c;
if(d>0&&fabs((a*b*c*d)-7.11)<=0.00000001){
cout<<a<<'\t'<<b<<'\t'<<c<<'\t'<<d<<endl;
count++;
}
}
}
}
cout<<count<<'\t';
}
后面的计数器最后运行出来是24为4!.也就是一组数据的不同排列!
if(d>0&&fabs((a*b*c*d)-7.11)<=0.00000001)在这个if选择结构中,不可以直接用数学上的a*b*c*d==7.11或者(a*b*c*d)-7.11==0之类的.这也就是考点!昨天没有注意这个问题,给大家造成的不便我向大家表示歉意
这里改用逼近的数学方法,而不能用直接的数学方法!