牛牛有一個魚缸。魚缸裏面已經有n條魚,每條魚的大小爲fishSize[i] (1 ≤ i ≤ n,均爲正整數),牛牛現在想把新捕捉的魚放入魚缸。魚缸內存在着大魚吃小魚的定律。經過觀察,牛牛發現一條魚A的大小爲另外一條魚B大小的2倍到10倍(包括2倍大小和10倍大小),魚A會吃掉魚B。考慮到這個,牛牛要放入的魚就需要保證:
1、放進去的魚是安全的,不會被其他魚吃掉
2、這條魚放進去也不能吃掉其他魚
魚缸裏面已經存在的魚已經相處了很久,不考慮他們互相捕食。現在知道新放入魚的大小範圍[minSize,maxSize](考慮魚的大小都是整數表示),牛牛想知道有多少種大小的魚可以放入這個魚缸。
輸入描述:
輸入數據包括3行.
第一行爲新放入魚的尺寸範圍minSize,maxSize(1 ≤ minSize,maxSize ≤ 1000),以空格分隔。
第二行爲魚缸裏面已經有魚的數量n(1 ≤ n ≤ 50)
第三行爲已經有的魚的大小fishSize[i](1 ≤ fishSize[i] ≤ 1000),以空格分隔。
輸出描述:
輸出有多少種大小的魚可以放入這個魚缸。考慮魚的大小都是整數表示
輸入例子:
1 12
1
1
輸出例子:
3
解答(C語言):
#include <stdio.h>
#include <stdlib.h>
int isAChiB(int a,int b)
{
if(a>=b*2&&a<=b*10)
return 1;
else
return 0;
}
int isBChiA(int a,int b)
{
if(b>=a*2&&b<=a*10)
return 1;
else
return 0;
}
int main()
{
int minSize,maxSize,n,i,j;
scanf("%d",&minSize);
scanf("%d",&maxSize);
scanf("%d",&n);
int fishSize[50]={0};
for(i=0;i<n;i++)
scanf("%d",&fishSize[i]);
int coutn=0;//統計數量
for(j = minSize;j<maxSize+1;j++)
{
int flag = 1;//設置標記
for(i = 0; i<n;i++){
//檢測A吃B或B吃A的情況
if(isAChiB(j,fishSize[i])||isBChiA(j,fishSize[i])){
flag = 0;
break;
}
}
if(flag == 1)
coutn++;
}
printf("%d",coutn);
return 0;
}