【NYOJ】[1025]A Famous Music Composer

文章字数:363

问题描述

问题分析

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

这一题就是根据

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

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

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

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#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++的知识啦

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#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】[1025]A Famous Music Composer

该内容采用 CC BY-NC-SA 4.0 许可协议。

如果对您有帮助或存在意见建议,欢迎在下方评论交流。

加载中...