GitBook

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