zoukankan      html  css  js  c++  java
  • A

    A - 娜娜梦游仙境系列——诡异的钢琴

    Time Limit: 2000/1000MS (Java/Others)    Memory Limit: 128000/64000KB (Java/Others)
    Submit Status

    Problem Description

    从前,有一个ACdream王国,王国里住着一位公主,她叫娜娜,娜娜公主有一天做了一个很长很长的梦~她说她从来没有遇到过这些奇妙的东西~

    现在站在娜娜面前的是一台钢琴,这是一台看上去很正常的钢琴,上面有88个键(频率从27赫兹到4186赫兹)~不过这不重要。作为一位理科学霸,娜娜知道声音的音调和频率有关,频率越高,声音越尖锐,频率越低,声音越低沉。

    可是这一台钢琴居然会自己发出声音!这真是太诡异了!好奇心宝宝娜娜对着这台神奇的钢琴研究了好久,发现这台钢琴发出的声音都是由三个频率组合而成,有时很激昂高亢,有时很幽美(请不要吐槽形容词),有时却很刺耳。渐渐地她发现了,高亢的叫大调和弦,频率比例正好是4:5:6,(例如我们常说的C大调和弦do mi so的频率是264:330:396=4:5:6,单位赫兹),低沉幽美的叫小调和弦,频率比例正好是10:12:15(例如我们常说的A小调和弦la do mi的频率比是220:264:330=10:12:15),其余很刺耳的和弦的比例都不符合这两个。

    那么娜娜就想知道任意给定三个音调的频率,到底是大调和弦还是小调和弦还是刺耳的和弦。

    Input

    多组数据,首先是一个整数t(t<=100)表示数据组数

    每组数据是三个正整数a,b,c(27<=a,b,c<=4186),表示三个音的频率,单位赫兹。

    Output

    对于每组数据,如果是大调和弦即频率比例为4:5:6,则输出"major",如果是小调和弦,则输出"minor",如果都不是,则输出"noise",注意不需要输出双引号,为了避免拼写问题,建议复制。

    Sample Input

    3
    264 330 396
    220 264 330
    264 297 330
     

    Sample Output

    major
    minor
    noise

    Hint

    264:330:396=4:5:6 为大调和弦
    220:264:330=10:12:15 为小调和弦
    264:297:330=8:9:10 既不是大调和弦也不是小调和弦
     
    纯粹的水题,只是需要注意的是输入的的三个数的大小不是有序的,从小到大找,然后再去按比例找音符就好了:
     1 #include <iostream>
     2 #include <stdio.h>
     3 using namespace std;
     4 int main()
     5 {
     6     int T,tmp,a,b,c,aa,bb,cc;
     7     scanf("%d",&T);
     8     while(T--)
     9     {
    10         scanf("%d%d%d",&aa,&bb,&cc);
    11         if(aa>bb)
    12         {
    13             tmp=aa;aa=bb;bb=tmp;
    14         }
    15         if(cc<=aa){a=cc;b=aa;c=bb;}
    16         else if(cc>=bb){a=aa;b=bb;c=cc;}
    17         else {a=aa;b=cc;c=bb;}
    18         if(b%5==0)
    19         {
    20             tmp=b/5;
    21             if(a==tmp*4&&c==tmp*6)
    22             {
    23                 printf("major
    ");
    24                 continue;
    25             }
    26         }
    27         if(b%12==0)
    28         {
    29             tmp=b/12;
    30             if(a==tmp*10&&c==tmp*15)
    31             {
    32                 printf("minor
    ");
    33                 continue;
    34             }
    35         }
    36         printf("noise
    ");
    37     }
    38     return 0;
    39 }
    View Code
    转载请备注:
    **************************************
    * 作者: Wurq
    * 博客: https://www.cnblogs.com/Wurq/
    * Gitee: https://gitee.com/wurq
    **************************************
  • 相关阅读:
    .net 用户控件ascx.cs注册js脚本代码无效果
    Sql-exec
    C# 复制指定节点的所有子孙节点到新建的节点下
    C# 拷贝指定文件夹下的所有文件及其文件夹到指定目录
    svn 命令
    C语言运算符优先级
    两级宏&&字符串化宏
    [C++]#if !defined 的作用
    四面体ply格式文件图和数据对应关系分析
    PLY格式介绍
  • 原文地址:https://www.cnblogs.com/Wurq/p/4429815.html
Copyright © 2011-2022 走看看