【NYOJ】[25]A Famous Music Composer

来源:互联网 发布:2004nba总决赛数据 编辑:程序博客网 时间:2024/05/29 15:44

这里写图片描述
这里写图片描述
其实是杭电的一题
但既然第一次见是在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

0 0
原创粉丝点击