1 #include<iostream> 2 #include<stdio.h> 3 #include<iomanip> 4 #define MAXN 100000 5 using namespace std; 6 7 double a[MAXN]; 8 double x1 = 0; 9 double x2 = 0; 10 double x3 = 0; 11 void give_list(int x,int y,int z); 12 double min(double a,double b,double c); 13 int main() 14 { 15 //freopen("acm.acm","r",stdin); 16 double x; 17 double y; 18 double z; 19 int num; 20 cin>>x>>y>>z>>num; 21 give_list(x,y,z); 22 cout<<setiosflags(ios::fixed)<<setprecision(0)<<a[num]<<endl; 23 } 24 25 26 27 /////////////////////////////////////////////////////// 28 //由2,3,5,7的乘积组成的数列,由小到大!第一个数默认是1! 29 /////////////////////////////////////////////////////// 30 void give_list(int x,int y,int z) 31 { 32 a[0]=1; 33 int len; 34 double m; 35 len=1; 36 while(len <= MAXN)//核心的代码,产生器! 37 { 38 m=min(a[int(x1)]*x,a[int(x2)]*y,a[int(x3)]*z); 39 if(m==a[int(x1)]*x)x1++; 40 if(m==a[int(x2)]*y)x2++; 41 if(m==a[int(x3)]*z)x3++; 42 a[len++]=m; 43 } 44 } 45 46 double min(double a,double b,double c)//四个数中最小的; 47 { 48 a=a<b?a:b; 49 a=a<c?a:c; 50 return a; 51 }