題目描述看了半天才看懂
就是找到四個**.**這樣的數字但是最小是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