華為杯山東理工大學第二屆團體程式設計天梯賽

2021-09-12 18:46:44 字數 3084 閱讀 6919

7-1 12-24小時制 (15 分)

編寫乙個程式,要求使用者輸入24小時制的時間,然後顯示12小時制的時間。

輸入在一行中給出帶有中間的:符號(半形的冒號)的24小時制的時間,如12:34表示12點34分。當小時或分鐘數小於10時,均沒有前導的零,如5:6表示5點零6分。

在一行中輸出這個時間對應的12小時制的時間,數字部分格式與輸入的相同,然後跟上空格,再跟上表示上午的字串am或表示下午的字串pm。如5:6 pm表示下午5點零6分。注意,在英文的習慣中,中午12點被認為是下午,所以24小時制的12:00就是12小時制的12:0 pm;而0點被認為是第二天的時間,所以是0:0 am

21:11
9:11 pm
#include using namespace std;

int main()

else if(m==12)

else if(m<23)

}return 0;

}

7-2 日期格式化 (5 分)

世界上不同國家有不同的寫日期的習慣。比如美國人習慣寫成「月-日-年」,而中國人習慣寫成「年-月-日」。下面請你寫個程式,自動把讀入的美國格式的日期改寫成中國習慣的日期。

輸入在一行中按照「mm-dd-yyyy」的格式給出月、日、年。題目保證給出的日期是2023年元旦至今合法的日期。

在一行中按照「yyyy-mm-dd」的格式給出年、月、日。

03-15-2017
2017-03-15
#include using namespace std;

int main()

return 0;

}

7-3 整數的分類處理 (20 分)

給定 n 個正整數,要求你從中得到下列三種計算結果:

輸入首先在第一行給出乙個正整數 n,隨後一行給出 n 個正整數。所有數字都不超過 100,同行數字以空格分隔。

在一行中順序輸出 a1、a2、a3的值,其間以 1 個空格分隔。如果某個數字不存在,則對應輸出none

8

5 8 7 6 9 1 3 10

9 3 6.5
8

15 18 7 6 9 1 3 10

18 3 none
#include using namespace std;

int main()

for(int i=0;i<4;i++)

else

}printf("\n");

}return 0;

}

7-5 a乘以b (5 分)

看我沒騙你吧 —— 這是一道你可以在10秒內完成的題:給定兩個絕對值不超過100的整數a和b,輸出a乘以b的值。

輸入在第一行給出兩個整數a和b(−100≤a,b≤100),數字間以空格分隔。

在一行中輸出a乘以b的值。

-8 13
-104
#include using namespace std;

char s[40];

int a[4];

int main()

q=sqrt(ans);

for(int i=2;i<=q;i++)

}if(flag)

else}}

return 0;

}

7-8 然後是幾點 (15 分)

有時候人們用四位數字表示乙個時間,比如1106表示11點零6分。現在,你的程式要根據起始時間和流逝的時間計算出終止時間。

讀入兩個數字,第乙個數字以這樣的四位數字表示當前時間,第二個數字表示分鐘數,計算當前時間經過那麼多分鐘後是幾點,結果也表示為四位數字。當小時為個位數時,沒有前導的零,即5點30分表示為530。注意,第二個數字表示的分鐘數可能超過60,也可能是負數。

輸入在一行中給出2個整數,分別是四位數字表示的起始時間、以及流逝的分鐘數,其間以空格分隔。注意:在起始時間中,當小時為個位數時,沒有前導的零,即5點30分表示為530;流逝的分鐘數可能超過60,也可能是負數。

輸出四位數字表示的終止時間。題目保證起始時間和終止時間在同一天內。

1120 110
1310
#include using namespace std;

char s[40];

int a[10];

int main()

else

if(d>0)

else

que[250010];

int head[510];

int pos;

void addedge(int u,int v,int w,int f)

void dijs(int n,int s,int e)

}flag[aa]=1;

for(int j=head[aa];j!=-1;j=que[j].next)

cin>>m;

for(int i=0;i>str[i]>>x;

sum+=x;

q[str[i]]=x;

}for(int i=0;isum)) //並且這裡要加括號;

}if(s.empty())

void bin(int x,int y)

}int main()

while(1)

else if(c=='i')

else

}if(sum==1)

else

break;}}

}return 0;

}

山東理工大學「華為杯 校賽 E九連環 dfs

time limit 1000 ms memory limit 65536 kib problem description 不知道大家有沒有玩過乙個叫做 九連環 的玩具,如下圖所示。如果你不了解九連環,那玄黃就帶你領略九連環的奧妙 九連環是我國傳統的民間智力玩具,玩具上面有九個連環套在杆上,目標就是...

南昌大學航天杯第二屆部分題解

這個比賽的題目考的比較多的都是大數運算,或者unsigned long long 的資料範圍 1e18以內 首先是a題,簽到,只不過是加了英文的描述,大意就是多組資料輸入,然後將每組的字串大寫轉小寫,小寫轉大寫,其他的不管。include include include include includ...

南昌大學航天杯第二屆部分題解

這個比賽的題目考的比較多的都是大數運算,或者unsigned long long 的資料範圍 1e18以內 首先是a題,簽到,只不過是加了英文的描述,大意就是多組資料輸入,然後將每組的字串大寫轉小寫,小寫轉大寫,其他的不管。include include include include includ...