其实是杭电的一题
但既然第一次见是在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
");
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
",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;
}