题目描述看了半天才看懂
就是找到四个**.**这样的数字但是最小是00.01
然后让这个四个数字的和等于四个数字的乘积
当时感觉暴力绝对超时就没写
后来别的题目写完了就没得写了
开始用暴力写这个当时别人已经用暴力把这个过了
然后开始写,先开始用实数来写的估计是因为精度问题一直不对
后来越写越郁闷
直接把程序全删除了。然后理清思路直接用整数来完成了一个就过了。
这个题可以先多枚举一些然后吧答案全都打出来
然后就可以知道第一个数第二个数。。。每个位置的数所能达到的最大值
然后以后搜索的时候只枚举到这个位置就好了
然后就过了
1
#include<stdio.h>
2
#include<math.h>
3
int main()
4

{
5
//freopen("asdas.txt","w",stdout);
6
int i,j,k,t;
7
for(i=1;i<160;i++)
8
for(j=i;j<1000;j++)
9
for(k=(2000-i-j)/2-1;k>=j;k--)
10
{
11
if(i*j*k<=1000000)break;
12
if( ((i+j+k)*1000000)%(i*j*k-1000000)==0 )
13
{
14
t=((i+j+k)*1000000)/(i*j*k-1000000);
15
if(t+i+j+k>2000)continue;
16
if(t<k)continue;
17
//printf("%d %d %d %d\n",i,j,k,t);
18
printf("%.2lf %.2lf %.2lf %.2lf\n",i/100.0,j/100.0,k/100.0,t/100.0);
19
}
20
}
21
return 0;
22
}
23
24
25