蓝桥杯基础练习1-15(python)
BASIC-1 閏年判斷
問題描述
給定一個(gè)年份,判斷這一年是不是閏年。
當(dāng)以下情況之一滿足時(shí),這一年是閏年:
其他的年份都不是閏年。
輸入格式
輸入包含一個(gè)整數(shù)y,表示當(dāng)前的年份。
輸出格式
輸出一行,如果給定的年份是閏年,則輸出yes,否則輸出no。
BASIC-2 01字串
問題描述
對(duì)于長(zhǎng)度為5位的一個(gè)01串,每一位都可能是0或1,一共有32種可能。它們的前幾個(gè)是:
00000
00001
00010
00011
00100
請(qǐng)按從小到大的順序輸出這32種01串。
輸入格式
本試題沒有輸入。
輸出格式
輸出32行,按從小到大的順序每行一個(gè)長(zhǎng)度為5的01串。
BASIC-3 字母圖形
問題描述
利用字母可以組成一些美麗的圖形,下面給出了一個(gè)例子:
ABCDEFG BABCDEF CBABCDE DCBABCD EDCBABC這是一個(gè)5行7列的圖形,請(qǐng)找出這個(gè)圖形的規(guī)律,并輸出一個(gè)n行m列的圖形。
輸入格式
輸入一行,包含兩個(gè)整數(shù)n和m,分別表示你要輸出的圖形的行數(shù)的列數(shù)。
輸出格式
輸出n行,每個(gè)m個(gè)字符,為你的圖形。
n,m=map(int,input().split()) for i in range(n):for j in range(m):if i<=j :print(chr(ord('A')+j-i),end='')else :print(chr(ord('A')+i-j),end='')print()BASIC-4 數(shù)列特征
問題描述
給出n個(gè)數(shù),找出這n個(gè)數(shù)的最大值,最小值,和。
輸入格式
第一行為整數(shù)n,表示數(shù)的個(gè)數(shù)。
第二行有n個(gè)數(shù),為給定的n個(gè)數(shù),每個(gè)數(shù)的絕對(duì)值都小于10000。
輸出格式
輸出三行,每行一個(gè)整數(shù)。第一行表示這些數(shù)中的最大值,第二行表示這些數(shù)中的最小值,第三行表示這些數(shù)的和。
n = int(input()) arr = input().split() print(max(int(arr[i]) for i in range(n))) print(min(int(arr[i]) for i in range(n))) print(sum(int(arr[i]) for i in range(n)))BASIC-5 查找整數(shù)
問題描述
給出一個(gè)包含n個(gè)整數(shù)的數(shù)列,問整數(shù)a在數(shù)列中的第一次出現(xiàn)是第幾個(gè)。
輸入格式
第一行包含一個(gè)整數(shù)n。
第二行包含n個(gè)非負(fù)整數(shù),為給定的數(shù)列,數(shù)列中的每個(gè)數(shù)都不大于10000。
第三行包含一個(gè)整數(shù)a,為待查找的數(shù)。
輸出格式
如果a在數(shù)列中出現(xiàn)了,輸出它第一次出現(xiàn)的位置(位置從1開始編號(hào)),否則輸出-1。
n = int(input()) l = input().split() a = input() i=0 while i<n:if a == l[i]:print(i+1)breaki = i+1if i == n:print(-1)BASIC-6 楊輝三角形
問題描述
楊輝三角形又稱Pascal三角形,它的第i+1行是(a+b)i的展開式的系數(shù)。
它的一個(gè)重要性質(zhì)是:三角形中的每個(gè)數(shù)字等于它兩肩上的數(shù)字相加。
下面給出了楊輝三角形的前4行:
1
1 1
1 2 1
1 3 3 1
給出n,輸出它的前n行。
輸入格式
輸入包含一個(gè)數(shù)n。
輸出格式
輸出楊輝三角形的前n行。每一行從這一行的第一個(gè)數(shù)開始依次輸出,中間使用一個(gè)空格分隔。請(qǐng)不要在前面輸出多余的空格。
n = int(input()) l=[[0 for i in range(n)] for i in range(n)]l[0][0] = 1for i in range(n):l[i][0]=1for i in range(n):for j in range(i+1):if(j>=1):l[i][j]=l[i-1][j]+l[i-1][j-1]print(l[i][j],end=' ')print()BASIC-7 特殊的數(shù)字
問題描述
153是一個(gè)非常特殊的數(shù),它等于它的每位數(shù)字的立方和,即153=111+555+333。編程求所有滿足這種條件的三位十進(jìn)制數(shù)。
輸出格式
按從小到大的順序輸出滿足條件的三位十進(jìn)制數(shù),每個(gè)數(shù)占一行。
for i in range(10):for j in range(10):for k in range(10):a=pow(i,3) +pow(k,3)+pow(j,3)if a>=100 and a<=999 and a==i*100+j*10+k*1:print(a)BASIC-8 回文數(shù)
問題描述
1221是一個(gè)非常特殊的數(shù),它從左邊讀和從右邊讀是一樣的,編程求所有這樣的四位十進(jìn)制數(shù)。
輸出格式
按從小到大的順序輸出滿足條件的四位十進(jìn)制數(shù)。
for i in range(9):for j in range(10):print("%d%d%d%d" % (i+1,j,j,i+1))BASIC-9 特殊回文數(shù)
問題描述
123321是一個(gè)非常特殊的數(shù),它從左邊讀和從右邊讀是一樣的。
輸入一個(gè)正整數(shù)n, 編程求所有這樣的五位和六位十進(jìn)制數(shù),滿足各位數(shù)字之和等于n 。
輸入格式
輸入一行,包含一個(gè)正整數(shù)n。
輸出格式
按從小到大的順序輸出滿足條件的整數(shù),每個(gè)整數(shù)占一行。
n = int(input())#先輸出5位 for i in range(9):for j in range(10):k=n-(i+1)*2-j*2if k>=0 and k<=9:print('%d%d%d%d%d' % (i+1,j,k,j,i+1)) #再輸出六位 for i in range(9):for j in range(10):for l in range(10):if(n==(i+1+j+l)*2):print('%d%d%d%d%d%d' % (i+1,j,l,l,j,i+1))BASIC-10 十進(jìn)制轉(zhuǎn)十六進(jìn)制
問題描述
十六進(jìn)制數(shù)是在程序設(shè)計(jì)時(shí)經(jīng)常要使用到的一種整數(shù)的表示方式。它有0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F共16個(gè)符號(hào),分別表示十進(jìn)制數(shù)的0至15。十六進(jìn)制的計(jì)數(shù)方法是滿16進(jìn)1,所以十進(jìn)制數(shù)16在十六進(jìn)制中是10,而十進(jìn)制的17在十六進(jìn)制中是11,以此類推,十進(jìn)制的30在十六進(jìn)制中是1E。
給出一個(gè)非負(fù)整數(shù),將它表示成十六進(jìn)制的形式。
輸入格式
輸入包含一個(gè)非負(fù)整數(shù)a,表示要轉(zhuǎn)換的數(shù)。0<=a<=2147483647
輸出格式
輸出這個(gè)整數(shù)的16進(jìn)制表示
a=int(input()) print('{:X}'.format(a)) #方法2: n = int(input()) print(format(n, 'X')) # X 輸出字母為大寫BASIC-11 十六進(jìn)制轉(zhuǎn)十進(jìn)制
問題描述
從鍵盤輸入一個(gè)不超過8位的正的十六進(jìn)制數(shù)字符串,將它轉(zhuǎn)換為正的十進(jìn)制數(shù)后輸出。
注:十六進(jìn)制數(shù)中的10~15分別用大寫的英文字母A、B、C、D、E、F表示。
樣例輸入
FFFF
樣例輸出
65535
a=input() print(int(a,16))BASIC-12 十六進(jìn)制轉(zhuǎn)八進(jìn)制
問題描述
給定n個(gè)十六進(jìn)制正整數(shù),輸出它們對(duì)應(yīng)的八進(jìn)制數(shù)。
輸入格式
輸入的第一行為一個(gè)正整數(shù)n (1<=n<=10)。
接下來n行,每行一個(gè)由09、大寫字母AF組成的字符串,表示要轉(zhuǎn)換的十六進(jìn)制正整數(shù),每個(gè)十六進(jìn)制數(shù)長(zhǎng)度不超過100000。
輸出格式
輸出n行,每行為輸入對(duì)應(yīng)的八進(jìn)制正整數(shù)。
【注意】
輸入的十六進(jìn)制數(shù)不會(huì)有前導(dǎo)0,比如012A。
輸出的八進(jìn)制數(shù)也不能有前導(dǎo)0。
BASIC-13 數(shù)列排序
問題描述
給定一個(gè)長(zhǎng)度為n的數(shù)列,將這個(gè)數(shù)列按從小到大的順序排列。1<=n<=200
輸入格式
第一行為一個(gè)整數(shù)n。
第二行包含n個(gè)整數(shù),為待排序的數(shù),每個(gè)整數(shù)的絕對(duì)值小于10000。
輸出格式
輸出一行,按從小到大的順序輸出排序后的數(shù)列。
n = int(input()) a = list(map(int,input().split())) a.sort() for i in range(n):if i!=n:print(a[i],end=' ')else:print(a[i],end='')BASIC-14 時(shí)間轉(zhuǎn)換
問題描述
給定一個(gè)以秒為單位的時(shí)間t,要求用“ < H> :< M>: < S>”的格式來表示這個(gè)時(shí)間。< H >表示時(shí)間,< M>表示分鐘,而< S>表示秒,它們都是整數(shù)且沒有前導(dǎo)的“0”。例如,若t=0,則應(yīng)輸出是“0:0:0”;若t=3661,則輸出“1:1:1”。
輸入格式
輸入只有一行,是一個(gè)整數(shù)t(0<=t<=86399)。
輸出格式
輸出只有一行,是以“< H>:< M>:< S>”的格式所表示的時(shí)間,不包括引號(hào)。
n = int(input()) a=int(n/3600) b=int((n-a*3600)/60) c=int(n-a*3600-b*60) print('%d:%d:%d' % (a,b,c))BASIC-15 字符串對(duì)比
問題描述
給定兩個(gè)僅由大寫字母或小寫字母組成的字符串(長(zhǎng)度介于1到10之間),它們之間的關(guān)系是以下4中情況之一:
1:兩個(gè)字符串長(zhǎng)度不等。比如 Beijing 和 Hebei
2:兩個(gè)字符串不僅長(zhǎng)度相等,而且相應(yīng)位置上的字符完全一致(區(qū)分大小寫),比如 Beijing 和 Beijing
3:兩個(gè)字符串長(zhǎng)度相等,相應(yīng)位置上的字符僅在不區(qū)分大小寫的前提下才能達(dá)到完全一致(也就是說,它并不滿足情況2)。比如 beijing 和 BEIjing
4:兩個(gè)字符串長(zhǎng)度相等,但是即使是不區(qū)分大小寫也不能使這兩個(gè)字符串一致。比如 Beijing 和 Nanjing
編程判斷輸入的兩個(gè)字符串之間的關(guān)系屬于這四類中的哪一類,給出所屬的類的編號(hào)。
輸入格式
包括兩行,每行都是一個(gè)字符串
輸出格式
僅有一個(gè)數(shù)字,表明這兩個(gè)字符串的關(guān)系編號(hào)
a=input() b=input() if len(a) != len(b):print(1) elif a==b:print(2) elif a.lower()==b.lower():print(3) else:print(4)總結(jié)
以上是生活随笔為你收集整理的蓝桥杯基础练习1-15(python)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Linux+c+线程的属性,C ++中的
- 下一篇: 解决神经网络过拟合问题—Dropout方