【NYOJ】[25]A Famous Music Composer

这里写图片描述
这里写图片描述
其实是杭电的一题
但既然第一次见是在NYOJ就放在这里吧~

这一题就是根据

A A#=Bb B C C#=Db D D#=Eb E F F#=Gb G G#=Ab

哈哈哈
表格 markdown语法 get√
好吧
并没有学会
不过……知道了markdown可以粘贴html源码
也算有所收获啦~

这一题根据规则替换字符串就好

还有关于让程序多次处理的问题
gets函数不同于scanf
EOF 应为!=NULL

#include<stdio.h>
int main() {
    int kase=0;
    char s[10];
    while(gets(s)!=NULL) {
        printf("Case %d: ",++kase);
        if(s[1]==' ')
            printf("UNIQUE\n");
        else {
            if(s[1]=='b') {
                s[1]='#';
                if(s[0]=='A')
                    s[0]='G';
                else
                    s[0]--;
            } else if(s[1]=='#') {
                s[1]='b';
                if(s[0]=='G')
                    s[0]='A';
                else
                    s[0]++;
            }
            printf("%s\n",s);
        }
    }
    return 0;
}

标程
对于C++有点看不懂
不过那个转换写的比我还巧妙
看来有必要再看看C++的知识啦

#include<iostream>
#include<string>
using namespace std;
string trans(string a){
    string b="";
    if(a[1]=='#'){
        b+=char((a[0]-'A'+1)%7+'A');
        b+='b';
    }else{
        b+=char((a[0]-'A'+6)%7+'A');
        b+='#';
    }
    return b;
}
int main(){
    string a,b;
    for(int t=1; cin>>a>>b; t++){
        cout<<"Case "<<t<<": ";
        if(a.length()==1)
            cout<<"UNIQUE"<<endl;
        else
            cout<<trans(a)<<" "<<b<<endl;
    }
    return 0;
}

题目地址:【NYOJ】[25]A Famous Music Composer

posted @ 2016-01-19 22:11  BoilTask  阅读(11)  评论(0编辑  收藏  举报