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