思想:ios
一、先將輸入的幾個數進行排序,sort函數是#include<algorithm>下的。函數
二、統計0的個數,以及相鄰數的差值,比較0的個數及差值的和。看是否能夠用大王填充中間的差值。spa
1 #include <iostream> 2 #include <algorithm> 3 #include <stdlib.h> 4 #include <string> 5 using namespace std; 6 7 8 bool IsContinuous(int *numbers,int length) 9 { 10 if(numbers==NULL || length<1) 11 return false; 12 13 sort(numbers,numbers+length); 14 15 int NumOfZero = 0; //0的個數 16 int NumOfGap = 0; //空缺的個數 17 int i; 18 for(i=0;i<length-1;i++) 19 { 20 if(numbers[i] == 0) 21 NumOfZero++; 22 else 23 { 24 if(numbers[i] == numbers[i+1]) 25 return false; 26 else 27 NumOfGap += numbers[i+1]-numbers[i]-1; 28 } 29 } 30 return (NumOfGap>NumOfZero)?false:true; 31 } 32 33 int main() 34 { 35 int n; 36 int arr[15]; 37 memset(arr,0,sizeof(arr)); 38 while(scanf("%d",&n)!=EOF && n!=0) 39 { 40 int i; 41 for(i=0;i<n;i++) 42 scanf("%d",arr+i); 43 44 bool can = IsContinuous(arr,n); 45 if(can) 46 printf("So Lucky!\n"); 47 else 48 printf("Oh My God!\n"); 49 } 50 return 0; 51 }