1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94
|
#include <stdio.h> void quiksort(int a[],int low,int high) { int i = low; int j = high; int temp = a[i];
if( low > high) { return ; } while(i < j) { while((a[j] >= temp) && (i < j)) { j--; } a[i] = a[j]; while((a[i] <= temp) && (i < j)) { i++; } a[j]= a[i]; } a[i] = temp; quiksort(a,low,i-1); quiksort(a,j+1,high); } int maximumProduct(int* nums, int numsSize) { quiksort(nums,0,numsSize-1);
int max=0,max1; max=nums[numsSize-1]*nums[0]*nums[1]; max1=nums[numsSize-1]*nums[numsSize-2]*nums[numsSize-3]; if(max>max1) { return max; } else { return max1; }
} int main() { int nums[]={722,634,-504,-379,163,-613,-842,-578,750,951,-158,30,-238,-392,-487,-797,-157,-374,999,-5,-521,-879,-858,382,626,803,-347,903,-205,57,-342,186,-736,17,83,726,-960,343,-984,937,-758,-122,577,-595,-544,-559,903,-183,192,825,368,-674,57,-959,884,29,-681,-339,582,969,-95,-455,-275,205,-548,79,258,35,233,203,20,-936,878,-868,-458,-882,867,-664,-892,-687,322,844,-745,447,-909,-586,69,-88,88,445,-553,-666,130,-640,-918,-7,-420,-368,250,-786}; int numsSize= sizeof(nums)/ sizeof(int); printf("%d",maximumProduct(nums,numsSize)); return 0; }
|