题意分析:
前轮和后轮均有若干个齿轮,每个齿轮又有若干齿牙。先将所有后轮齿轮的齿牙与前轮的齿轮齿牙做比,并将这些比值从小到大排序,最后求解相邻两个比值的比最大的一个。
解题思路:
模拟;
用例过了,也看了别人的解题代码,感觉没什么问题。但提交一直WA;
解题代码:
#include<iostream>
#include<stdio.h>
#include<algorithm>
using namespace std;
int fArray[10+1];
int rArray[10+1];
float dArray[10*10];
int main(int argc, char *argv[]){
int f;
while(cin>>f,f){
int r;
cin>>r;
for(int i=0;i<f;i++){
cin>>fArray[i];
}
for(int i=0;i<r;i++){
cin>>rArray[i];
}
for(int i=0;i<r;i++){
for(int j=0;j<f;j++){
dArray[i*f+j]=1.0*rArray[i]/fArray[j];
}
}
sort(&dArray[0],&dArray[r*f-1]);
float max=0;
for(int i=1;i<f*r;i++){
float tmp=dArray[i]/dArray[i-1];
if(tmp>max){
max=tmp;
}
}
printf("%.2f\n",max);
}
return 0;
}