MJUPC-022-创新互联
输出一个数学与数据科学学院(软件学院)社管中心科技部的Logo,做为打开MJUPC编程挑战系列赛大门的敲门砖。
此题为签到题,没有难度,但因Logo字符画中包含一些转义字符,需要逐行输出,比较麻烦费时,细心即可。
下面是本题题解C代码,代码19行“Ycnjt///tv+”处有11个“/” ,由于“/t”转义字符的原因此行不能正常显示,提交测试时要注意检查此行。
#includeint main(void)
{
printf(" .'^\"\"\"\"^''\n");
printf(" `;>-}|/jrxnuuunrjt(}_i:^. \n");
printf(" ^>}/xvzzzzcccccccccccczzzzvnj(-l`\n");
printf(" :-/uzzzccvcczzzzzcvvvvvvczzzzccczzcx(<^\n");
printf(" '>\\vXzcvcczzcur/1?+>l:,,,,:li+[|rvzcvvczzn(-I' \n");
printf(" `?rzzcvczzcr(-l^ .'`\"\"\". ';_fzcvvvczzzu)!. \n");
printf(" .+xzcvcczv/_: .,i?)/rnczXUUJ/ .>rzvvvvvvzJCn-` \n");
printf(" !fzcvczcf_\" '!}fcUCCCCCCJJJJJCu. ^jcvvvvvcnvCCc_. \n");
printf(" '}czvvzc(I ^+tXCCCJJJJJJJJJJJJJCv' >zvvvvvvvtnJCLr; \n");
printf(" ^/Xcvcz\\; I|YLCJJJJJJJJJJJJJJJJJJX^ ,vcvvvvvcf/xJJCY~ \n");
printf(" ^fzvvcv~ ljJLJJJJJJJJJJJJJJJJJJJJJJI izvvvvvcutt/nJJCC~ \n");
printf(" .(Xvvzn;^|JCJJJJJJJJJJJJJJJJJJJJJJJC! ./zvvvvcvjttttYJJCU; \n");
printf(" izvvcv;;cLJJJJJJJJJJJJJJJJJJJJJJJJJCi .{zvvvvcvjtttt/vCJJCr. \n");
printf(" \\zvvX-lYCJJJJJJJJJJJJJUYzcunnxnuvXUQ_ `1zcvvccufttttttnJJJJL+ \n");
printf(" `ncvcv+XCJJJJJJJJJJYcnjt///tv+ ljzcvccurttttttt/nJJJJCj \n");
printf(" \"vcvvvUCJJJJJJJJYvj/\\\\/t\\[+<>i><_?{|{' `>(czccvnjttttttttt/zJJJJCX` \n");
printf(" ;ccvvzJJJJJJJJzx/\\\\tnn1!^ '''\"l_(nzzvuxjfttttttttttfrJJJJJCY^ \n");
printf(" 'xcvvXJJJJJJXr\\\\txzCxI !}{)|/rnvvuxjjftttttttttttttj{tCJJJJCn. \n");
printf(" {XvvXJJJJJu/\\tuUJL|' ?rjrrjjftttttttttttttttttttj{:cCJJJJQ[ \n");
printf(" \"ucvzJJJJr\\/nUCJCj. [ftttttttttttttttttttttttff?'/LJJJJCc^ \n");
printf(" ]XvcUJCu\\/cJJJJC! .(ftttttttttttttttttttttfj)l )LJJJJJJi \n");
printf(" '/XvXJU/\\cJJJJJJ: '\\fttttttttttttttttttfff)>.'\\LJJJJCJ+ \n");
printf(" ^fXcUX|xCJJJJJC_ ,tftttttttttttttttfjj\\]I lnLJJJJCY> \n");
printf(" `(zzXjYJJJJJJCc: ;jtttttttttttfffjf|]!' :)UCJJJJLr; \n");
printf(" +xzczJJJJJJJCz?` !rjfffffffjjf/([<:' I\\YLJJJJCX?. \n");
printf(" ^[uzXJJJJJJJJCc)!' '<[1(|(){]_>;^ :?rJCJJJJLU(\" \n");
printf(" \"]nYJJJJJJJJJCJv\\-l\"' .^I+)nUCCJJJCLY(; \n");
printf(" \"]jXCCCJJJJJJCCCJYvr/)}]?_?[})\\ruXJCCCJJJCCCv}, \n");
printf(" .:](fnczYUUUUUUYXcurt)]
题目二:水仙花数水仙花数是指一个 3 位数,它的每个位上的数字的 3次幂之和等于它本身,例如:
1
3
+
5
3
+
3
3
=
153
3
3
+
7
3
+
0
3
=
370
3
3
+
7
3
+
1
3
=
371
4
3
+
0
3
+
7
3
=
407
1^{3}+5^{3}+3^{3}=153\qquad3^{3}+7^{3}+0^{3}=370\qquad3^{3}+7^{3}+1^{3}=371\qquad4^{3}+0^{3}+7^{3}=407
13+53+33=15333+73+03=37033+73+13=37143+03+73=407
水仙花数只是自幂数的一种,严格来说3位数的3次幂数才称为水仙花数。
下面是本题题解C++代码,题目解法不唯一,供大家交流参考:
#include"iostream"
#include"cmath"
using namespace std;
int main() {
int n;
cin>>n;
int m=(n/100)*(n/100)*(n/100)+((n/10)%10)*((n/10)%10)*((n/10)%10)+(n%10)*(n%10)*(n%10);
if(m==n){
cout<<"yes";
}else{
cout<<"no";
}
}
题目三:一元二次方程求解
此
题
需
注
意
输
出
格
式
,
只
有
一
个
解
时
输
出
x
即
可
,
有
两
个
解
时
需
输
出
x
1
x
2
(
x
1
<
x
2
)
,
且
需
保
留
两
位
小
数
输
出
。
此题需注意输出格式,只有一个解时输出x即可,有两个解时需输出x_1 \quad x_2(x_1
一
元
二
次
方
程
的
一
般
形
式
是
a
x
2
+
b
x
+
c
=
0
(
a
≠
0
)
,
其
中
a
x
2
是
二
次
项
,
a
是
二
次
项
系
数
;
b
x
是
一
次
项
,
b
是
一
次
项
系
数
;
c
是
常
数
项
。
一元二次方程的一般形式是 ax^{2}+bx+c=0(a≠0),其中ax^{2}是二次项,a是二次项系数;bx是一次项,b是一次项系数;c是常数项。
一元二次方程的一般形式是ax2+bx+c=0(a=0),其中ax2是二次项,a是二次项系数;bx是一次项,b是一次项系数;c是常数项。
使
一
元
二
次
方
程
左
右
两
边
相
等
的
未
知
数
的
值
叫
做
一
元
二
次
方
程
的
解
,
也
叫
做
一
元
二
次
方
程
的
根
。
求
根
公
式
为
x
=
−
b
±
b
2
−
4
a
c
2
a
使一元二次方程左右两边相等的未知数的值叫做一元二次方程的解,也叫做一元二次方程的根。 求根公式为x=\frac {-b±\sqrt {b^{2}-4ac}}{2a}
使一元二次方程左右两边相等的未知数的值叫做一元二次方程的解,也叫做一元二次方程的根。求根公式为x=2a−b±b2−4ac
下面是本题题解C++代码,题目解法不唯一,供大家交流参考:
#include"iostream"
#include"cmath"
using namespace std;
int main() {
double a,b,c;
scanf("%lf %lf %lf",&a,&b,&c);
double d=b*b-4*a*c;
if(d<0){
cout<<"NO";
} else if(d==0){
printf("%0.2f",(-b+ sqrt(d))/(2*a));
}else{
printf("%0.2f %0.2f",min((-b- sqrt(d))/(2*a),(-b+ sqrt(d))/(2*a)),max((-b- sqrt(d))/(2*a),(-b+ sqrt(d))/(2*a)));
}
}
题目四:成绩排序给出学生姓名和成绩,现在请你将他们按照成绩从低到高的顺序排列有序。
此题需注意输入、输出格式,第一行输入N表示要录入N个学生的信息,后面N行输入N个学生的姓名(字符串)与成绩(以空格隔开),输出时需输出N行数据,每行一个字符串和一个数字,用冒号隔开,表示学生的姓名和成绩,输出的成绩要保留1位小数,若成绩相同则按输入时的先后顺序输出。
数
据
范
围
为
N
≤
1
0
5
,
姓
名
字
符
串
长
度
不
超
过
10
,
成
绩
的
范
围
为
[
0
,
100
]
。
数据范围为 N ≤ {10^{5}},姓名字符串长度不超过10,成绩的范围为[0,100]。
数据范围为N≤105,姓名字符串长度不超过10,成绩的范围为[0,100]。
由于N的范围较大,使用冒泡排序时间复杂度太高,会导致超时问题;使用选择排序也无法通过此题,选择排序为不稳定排序,不能保证成绩相同时按照输入的先后顺序输出;需要使用时间复杂度为N(nlogn)的稳定排序算法,这里选择使用归并排序来解决此题。
下面是本题题解C++代码,题目解法不唯一,供大家交流参考:
#include"iostream"
using namespace std;
struct Grade{
double grade;
char name[15];
}grades[100005],temp[100005];
void merge_sort(int l,int r){
if(l>=r)
return;
int mid=(l+r)>>1;
merge_sort(l,mid), merge_sort(mid+1,r);
int i=l,j=l,k=mid+1;
while (i<=mid&&k<=r){
if(grades[i].grade<=grades[k].grade)temp[j++]=grades[i++];
else temp[j++]=grades[k++];
}
while (i<=mid)temp[j++]=grades[i++];
while (k<=r)temp[j++]=grades[k++];
for (int m = l; m<= r; ++m) {
grades[m]=temp[m];
}
}
int main() {
int N;
scanf("%d",&N);
for (int i = 0; i< N; ++i) {
scanf("%lf %s",&grades[i].grade,&grades[i].name);
}
merge_sort(0,N-1);
for (int i = 0; i< N; ++i) {
printf("%s:%.1lf\n",grades[i].name,grades[i].grade);
}
}
题目五:统计字符现给出一段由大写字母组成的字符串,要求你输出每个大写字母出现的次数,其中未出现的字母不需要输出,输出的顺序为A~Z。
格式要求输入一串由大写字母组成的字符串,输出时按A~Z顺序逐行输出,并在字母后标明此字母出现次数(以冒号隔开)。
下面是本题题解C++代码,题目解法不唯一,供大家交流参考:
#includeusing namespace std;
int a[26];
int main(){
string s;
cin>>s;
for(char i:s)
a[i-'A']++;
for(int i=0;i<26;i++){
if(a[i]){
cout<<(char)('A'+i)<<':'<
题目六:天干地支干支纪年,是指中国纪年历法,自上古以来就一直使用的纪年方法。干支是天干和地支的总称。把干支顺序相配正好六十为一周,周而复始,循环记录,这就是俗称的“干支表”。干支纪年以每年以立春进入下一年。
下表为干支次序表:
01甲子 02乙丑 03丙寅 04丁卯 05戊辰 06己巳 07庚午 08辛未 09壬申 10癸酉 11甲戌 12乙亥 13丙子 14丁丑 15戊寅 16己卯 17庚辰 18辛巳 19壬午 20癸未 21甲申 22乙酉 23丙戌 24丁亥 25戊子 26己丑 27庚寅 28辛卯 29壬辰 30癸巳 31甲午 32乙未 33丙申 34丁酉 35戊戌 36己亥 37庚子 38辛丑 39壬寅 40癸卯 41甲辰 42乙巳 43丙午 44丁未 45戊申 46己酉 47庚戌 48辛亥 49壬子 50癸丑 51甲寅 52乙卯 53丙辰 54丁巳 55戊午 56己未 57庚申 58辛酉 59壬戌 60癸亥
每十年天干循环一轮,每十二年地支循环一轮,用年份取余后输出即可。
#include"iostream"
using namespace std;
int main(){
int N;
scanf("%d",&N);
while (N--) {
string s[10] = {"jia", "yi", "bing", "ding", "wu", "ji", "geng", "xin", "ren", "gui"};
string s1[12] = {"zi", "chou", "yin", "mao", "chen", "si", "wu", "wei", "shen", "you", "xu", "hai"};
int year;
scanf("%d",&year);
cout<< s[(year + 6) % 10]<< s1[(year + 8) % 12]<<"\n";
}
}
题解编辑:枫_0329
题解代码:o0kangkang0o
你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧
本文名称:MJUPC-022-创新互联
当前链接:http://scjiangan.com/article/dojoeh.html