輸出一個(gè)數(shù)學(xué)與數(shù)據(jù)科學(xué)學(xué)院(軟件學(xué)院)社管中心科技部的Logo,做為打開(kāi)MJUPC編程挑戰(zhàn)系列賽大門(mén)的敲門(mén)磚。
此題為簽到題,沒(méi)有難度,但因Logo字符畫(huà)中包含一些轉(zhuǎn)義字符,需要逐行輸出,比較麻煩費(fèi)時(shí),細(xì)心即可。
下面是本題題解C代碼,代碼19行“Ycnjt///tv+”處有11個(gè)“/” ,由于“/t”轉(zhuǎn)義字符的原因此行不能正常顯示,提交測(cè)試時(shí)要注意檢查此行。
#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)]
題目二:水仙花數(shù)水仙花數(shù)是指一個(gè) 3 位數(shù),它的每個(gè)位上的數(shù)字的 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
水仙花數(shù)只是自?xún)鐢?shù)的一種,嚴(yán)格來(lái)說(shuō)3位數(shù)的3次冪數(shù)才稱(chēng)為水仙花數(shù)。
下面是本題題解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";
}
}
題目三:一元二次方程求解
此
題
需
注
意
輸
出
格
式
,
只
有
一
個(gè)
解
時(shí)
輸
出
x
即
可
,
有
兩
個(gè)
解
時(shí)
需
輸
出
x
1
x
2
(
x
1
<
x
2
)
,
且
需
保
留
兩
位
小
數(shù)
輸
出
。
此題需注意輸出格式,只有一個(gè)解時(shí)輸出x即可,有兩個(gè)解時(shí)需輸出x_1 \quad x_2(x_1
使
一
元
二
次
方
程
左
右
兩
邊
相
等
的
未
知
數(shù)
的
值
叫
做
一
元
二
次
方
程
的
解
,
也
叫
做
一
元
二
次
方
程
的
根
。
求
根
公
式
為
x
=
?
b
±
b
2
?
4
a
c
2
a
使一元二次方程左右兩邊相等的未知數(shù)的值叫做一元二次方程的解,也叫做一元二次方程的根。 求根公式為x=\frac {-b±\sqrt {b^{2}-4ac}}{2a}
使一元二次方程左右兩邊相等的未知數(shù)的值叫做一元二次方程的解,也叫做一元二次方程的根。求根公式為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)));
}
}
題目四:成績(jī)排序給出學(xué)生姓名和成績(jī),現(xiàn)在請(qǐng)你將他們按照成績(jī)從低到高的順序排列有序。
此題需注意輸入、輸出格式,第一行輸入N表示要錄入N個(gè)學(xué)生的信息,后面N行輸入N個(gè)學(xué)生的姓名(字符串)與成績(jī)(以空格隔開(kāi)),輸出時(shí)需輸出N行數(shù)據(jù),每行一個(gè)字符串和一個(gè)數(shù)字,用冒號(hào)隔開(kāi),表示學(xué)生的姓名和成績(jī),輸出的成績(jī)要保留1位小數(shù),若成績(jī)相同則按輸入時(shí)的先后順序輸出。
數(shù)
據(jù)
范
圍
為
N
≤
1
0
5
,
姓
名
字
符
串
長(zhǎng)
度
不
超
過(guò)
10
,
成
績(jī)
的
范
圍
為
[
0
,
100
]
。
數(shù)據(jù)范圍為 N ≤ {10^{5}},姓名字符串長(zhǎng)度不超過(guò)10,成績(jī)的范圍為[0,100]。
數(shù)據(jù)范圍為N≤105,姓名字符串長(zhǎng)度不超過(guò)10,成績(jī)的范圍為[0,100]。
由于N的范圍較大,使用冒泡排序時(shí)間復(fù)雜度太高,會(huì)導(dǎo)致超時(shí)問(wèn)題;使用選擇排序也無(wú)法通過(guò)此題,選擇排序?yàn)椴环€(wěn)定排序,不能保證成績(jī)相同時(shí)按照輸入的先后順序輸出;需要使用時(shí)間復(fù)雜度為N(nlogn)的穩(wěn)定排序算法,這里選擇使用歸并排序來(lái)解決此題。
下面是本題題解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);
}
}
題目五:統(tǒng)計(jì)字符現(xiàn)給出一段由大寫(xiě)字母組成的字符串,要求你輸出每個(gè)大寫(xiě)字母出現(xiàn)的次數(shù),其中未出現(xiàn)的字母不需要輸出,輸出的順序?yàn)锳~Z。
格式要求輸入一串由大寫(xiě)字母組成的字符串,輸出時(shí)按A~Z順序逐行輸出,并在字母后標(biāo)明此字母出現(xiàn)次數(shù)(以冒號(hào)隔開(kāi))。
下面是本題題解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)<<':'<
題目六:天干地支干支紀(jì)年,是指中國(guó)紀(jì)年歷法,自上古以來(lái)就一直使用的紀(jì)年方法。干支是天干和地支的總稱(chēng)。把干支順序相配正好六十為一周,周而復(fù)始,循環(huán)記錄,這就是俗稱(chēng)的“干支表”。干支紀(jì)年以每年以立春進(jìn)入下一年。
下表為干支次序表:
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癸亥 |
每十年天干循環(huán)一輪,每十二年地支循環(huán)一輪,用年份取余后輸出即可。
#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
你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級(jí)流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級(jí)服務(wù)器適合批量采購(gòu),新人活動(dòng)首月15元起,快前往官網(wǎng)查看詳情吧