两个吃奶一个添下面视频_人妻第一页香蕉网_欧美xxxx少妇_妺妺窝人体色www婷婷

Dotcpp  >  編程題庫(kù)  >  藍(lán)橋杯算法訓(xùn)練VIP-A Major Problem
題目 2094:

藍(lán)橋杯算法訓(xùn)練VIP-A Major Problem

時(shí)間限制: 2s 內(nèi)存限制: 192MB 提交: 28 解決: 0

題目描述

在西方音樂(lè)中,用大寫(xiě)字母A到G來(lái)表示在樂(lè)譜中被使用的12個(gè)音符,它們后面可能連有升調(diào)符號(hào)“#”和降調(diào)符號(hào)“b”,而且如下面展示的那樣循環(huán)排列。斜杠用來(lái)描述相同音符。
C/B# C#/Db D D#/Eb E/Fb F/E# F#/Gb G G#/Ab A A#/Bb B/Cb C/B# …
上表中任意兩個(gè)相鄰音符構(gòu)成一個(gè)半音。恰被一個(gè)音符隔開(kāi)的兩個(gè)音符構(gòu)成一個(gè)全音。一個(gè)大調(diào)音階由八個(gè)音符組成。它由上述之一的音符開(kāi)始并且緊跟著連續(xù)的“全音-全音-半音-全音-全音-全音-半音”。分別由C和Db開(kāi)始的兩個(gè)大調(diào)音階,將由下面的音符組成:
C D E F G A B C
Db Eb F Gb Ab Bb C Db
下面的規(guī)則同樣適用于大調(diào)音階:
1. A到G的每個(gè)字母將在音階中出現(xiàn)恰好一次,同時(shí)第一個(gè)字母將例外地在音階最后重復(fù)出現(xiàn)一次。
2. 音階當(dāng)中不允許同時(shí)出現(xiàn)升調(diào)或降調(diào)記號(hào)。

大調(diào)音階的首個(gè)音符被認(rèn)為是這個(gè)音階的曲調(diào)。比方說(shuō),上面的兩個(gè)音階分別是C和Db大調(diào)音階。更換兩個(gè)音階的音符就是交換對(duì)應(yīng)位置的音符那么簡(jiǎn)單。舉個(gè)例子,C大調(diào)音階中的F會(huì)和Db大調(diào)音階中的Gb交換因?yàn)樗鼈冊(cè)诟髯砸綦A中的位置相同。
你需要寫(xiě)一個(gè)程序,在不同音階中交換音符。

輸入格式

輸入包含多組數(shù)據(jù),每行一組。每行開(kāi)頭是一個(gè)源曲調(diào),緊跟著一個(gè)目標(biāo)曲調(diào),接下來(lái)是一串需要從源曲調(diào)大調(diào)音階交換至目標(biāo)曲調(diào)大調(diào)音階的音符。每行由單個(gè)星號(hào)結(jié)束。每行中的音符和星號(hào)都由單個(gè)空格隔開(kāi)。

輸入的最后一行只包含一個(gè)星號(hào),并不作為測(cè)試數(shù)據(jù)。

數(shù)據(jù)組數(shù)不超過(guò)100組并且保證輸入音符合法。

輸出格式

每組測(cè)試數(shù)據(jù)可能對(duì)應(yīng)一行或多行輸出。如果源調(diào)和目標(biāo)調(diào)都是有效的,那么輸出的第一行應(yīng)該是“Transposing from X to Y:”,X代表源調(diào),Y代表目標(biāo)調(diào)。假如源調(diào)或者目標(biāo)調(diào)中有一個(gè)是無(wú)效的,那么輸出“Key of X/Y is not a valid major key”,X/Y表示無(wú)效的曲調(diào),改行剩下的輸入將被忽略。假如兩者皆無(wú)效,只需輸出源調(diào)。
對(duì)于包含了有效的源調(diào)和目標(biāo)調(diào)的數(shù)據(jù),在第一行的輸出后,每個(gè)被交換的音符都對(duì)應(yīng)一行輸出。假如輸入的音符在源調(diào)的大調(diào)音階中是個(gè)有效音符,那么輸出“M transposes to N”,M表示源調(diào)中的音符,N是目標(biāo)調(diào)中對(duì)應(yīng)位置的音符。假如輸入的音符在源大調(diào)音階中無(wú)效,那么輸出“M is not a valid note in the X major scale”,M代表輸入音符,X代表源音調(diào)。不管是有效還是無(wú)效音符,都要保持一致的縮進(jìn)格式。
各組數(shù)據(jù)的輸出之間應(yīng)該用一個(gè)空行隔開(kāi)。你的輸出格式應(yīng)該要和下面的標(biāo)準(zhǔn)輸出相同。

輸入和輸出的標(biāo)準(zhǔn)格式請(qǐng)參考未格式化的試題。

樣例輸入

C Db F *
Db C Gb *
C B# A B *
C D A A# B Bb C *
A# Bb C *
*

樣例輸出

Transposing from C to Db:
F transposes to Gb
Transposing from Db to C:
Gb transposes to F
Key of B# is not a valid major key
Transposing from C to D:
A transposes to B
A# is not a valid note in the C major scale
B transposes to C#
Bb is not a valid note in the C major scale
C transposes to D
Key of A# is not a valid major key

提示

零基礎(chǔ)同學(xué)可以先學(xué)習(xí)視頻課程,包含C/C++、Python、百練、藍(lán)橋杯輔導(dǎo)、算法數(shù)據(jù)結(jié)構(gòu)等課程,提供視頻講解以及配套習(xí)題,還有老師答疑,點(diǎn)擊這里了解課程詳情
標(biāo)簽