close
內容

生物學家發現,與特定功能相關的一群基因在基因序列上的位置通常十分靠近,因此在
不同的基因序列中如果都看見相同基因構成的連續片段 (順序不重要),這些基因構成的集合
就被認為是有意義的,稱為基因群 (gene cluster)。例如: 如果在一條基因序列上看到一個片段
內容為 (a,b,c,d),同時在另外一條基因序列上看到一個片段內容為 (d,b,a,c),那麼 {a,b,c,d} 就構成一組基因群。

找出基因群並不是一件容易的工作,有一個計算生物學家想到一個聰明的方法來簡化這
個問題。經過他的簡化後,基因群辨識的主要工作會被轉換成: 輸入一個由相異正整數組成的
序列 S,然後判斷 S 的內容是否構成連續的一串整數。例如: S=(2,5,3,4) 的內容構成連續
的一串整數 2,3,4,5;但是 S=(2,6,3,4) 的內容並不構成連續的一串整數 (缺了 5)。
給定一個數字所構成的序列,請撰寫一個程式來判斷這個序列中的數字是否構成連續的
一串整數。

輸入說明

測試資料是由一行的數字所構成 (數字間以一個以上的空白隔開),第一個數字 n 表示所給定數字序列的長度,1<n100,接下來會有 n 相異的正整數 mi1in  1mi1000,表示數字序列的內容。

輸出說明

輸出一行,如果此序列中的數字構成連續的一串整數,請輸出: abyes;不行則輸出: abno,其中 a  b 分別代表序列中所有數字的最小值與最大值。a 和 b 之間以及 b 和 yes/no 之間,請以剛好一個空白隔開。(yes/no 請用小寫)

範例輸入 #1
輸入範例 1:
2 6 5

輸入範例 2:
2 5 7
範例輸出 #1
輸出範例 1:
5 6 yes

輸出範例 2:
5 7 no

C++:

/*
連續數 
eg: 4 5 6 7 8 9 長度6
在連續數下會發現最大值 -最小值 = 長度-1 
**/ 
#include <iostream> 
#include <algorithm>
using namespace std;
int main() {

	int n;
	while(cin>>n){
		int arr[n];
		for(int i=0;i<n;i++){
			cin>>arr[i];
		}
		sort(arr,arr+n);
		if(arr[n-1]-arr[0]==n-1){
			cout<<arr[0]<<" "<<arr[n-1]<<" yes"<<"\n";
		}
		else{
			cout<<arr[0]<<" "<<arr[n-1]<<" no"<<"\n";
		}
	}
	return 0;
}

python:

"""
連續數 
eg: 4 5 6 7 8 9 長度6
在連續數下會發現最大值 -最小值 = 長度-1 
"""
while True:
    try:
        arr=list(map(int,input().split()))
        arr_len=arr[0]
        arr=arr[1:]
        #print(arr)
        if(max(arr)-min(arr)==arr_len-1):
            print(min(arr),max(arr),"yes")
        else:
            print(min(arr),max(arr),"no")
    except:break

 

 

 

arrow
arrow
    文章標籤
    高中生程式解題 python C++
    全站熱搜
    創作者介紹
    創作者 趴趴熊日常 的頭像
    趴趴熊日常

    資工趴趴熊的小天地

    趴趴熊日常 發表在 痞客邦 留言(0) 人氣()