算法-分支结构
文章目錄
- 前言`
- 本篇文章主要是練習(xí)基本的語法和簡單的邏輯結(jié)構(gòu)
- 1、分支結(jié)構(gòu)---兩數(shù)大小
- 題目描述
- 題目分析
- python 代碼
- 2、分支結(jié)構(gòu)---四個數(shù)從小到大排序
- 題目描述
- 題目分析
- python 代碼
- 3、分支結(jié)構(gòu)---明天幾號
- 題目描述
- 題目分析
- 解法一 if else 語句
- 解法二 內(nèi)置函數(shù)datetime
- 4、分支結(jié)構(gòu)--出租費(fèi)用
- 題目描述
- 題目分析
- python代碼
- 5、分支結(jié)構(gòu)---數(shù)的倒著輸出
- 題目描述
- 題目分析
- python代碼
- 6、分支結(jié)構(gòu)---成績等級
- 題目描述
- 題目分析
- python代碼
- 7、分支結(jié)構(gòu)---一門課不及格
- 題目描述
- 題目分析
- python代碼
- 8、分支結(jié)構(gòu)---水仙花數(shù)判斷
- 題目描述
- 題目分析
- python代碼
- 9、分支結(jié)構(gòu)--- 判斷能否被3,5,7整除
- 描述
- 題目分析
- python代碼
- 10、分支結(jié)構(gòu)--- 乘車計(jì)費(fèi)問題
- 題目描述
- 題目分析
- python代碼
- 總結(jié)
前言`
本篇文章主要是練習(xí)基本的語法和簡單的邏輯結(jié)構(gòu)
1、分支結(jié)構(gòu)—兩數(shù)大小
題目描述
從鍵盤輸入兩個不相等的數(shù),存入a和b,判斷a和b的大小,操作實(shí)現(xiàn)a的值大于b的值,并從大到小顯示出來。
輸入
輸入兩個數(shù),用空格隔開
輸出
從大到小輸出兩個數(shù),用空格隔開
輸入樣例 1
1 2
輸出樣例 1
2 1
提示
數(shù)據(jù)規(guī)模:-1000000<=a,b<=1000000
題目分析
直接if語句進(jìn)行判斷
python 代碼
a, b=map(int, input().split()) if a<b:a,b=b,a print(a,end=' ') print(b)2、分支結(jié)構(gòu)—四個數(shù)從小到大排序
題目描述
輸入四個整數(shù)a,b,c,d,實(shí)現(xiàn)從小到大輸出。
輸入
輸入一行四個整數(shù)a,b,c,d,數(shù)與數(shù)之間用空格分開
輸出
輸出一行:四個從小到大排序的整數(shù)a,b,c,d,數(shù)與數(shù)之間用空格分開
輸入樣例 1
4 3 2 1
輸出樣例 1
1 2 3 4
提示
-100000<=A,B,C,D<=100000
題目分析
這里直接使用python里面的sort()函數(shù),直接輸出就可以了,
python 代碼
a = list(map(int, input().split())) a.sort() for i in a:print(i, end=' ')3、分支結(jié)構(gòu)—明天幾號
題目描述
麥兜小朋友特別喜歡過生日,因?yàn)樯漳翘炜梢匝埿』锇閬砑依镩_Party。于是他度日如年,總是問媽媽:明天是幾號?
麥太也總是回答說,今天是y年m月d日,明天是幾號你自己算吧。
輸入
輸入:3個整數(shù)y, m, d,分別表示今天是哪年、哪月、哪日。保證輸入合法,整數(shù)之間用空格分開。
輸出
輸出:3個整數(shù),表示該天之后的一天的日期。注意:要考慮閏年、跨月、跨年等多種情況。整數(shù)之間用空格隔開
輸入樣例 1
1 1 1
輸出樣例 1
1 1 2
題目分析
1,可以直接使用if else 語句進(jìn)行判斷,這樣要注意考慮閏年,跨月等情況,思路要理清楚。
2,也可以用python里面的datetime標(biāo)準(zhǔn)庫進(jìn)行運(yùn)算。話不多說直接上代碼。
解法一 if else 語句
a,b,c=map(int,input().split()) if (a % 4 == 0 and a % 100 != 0) or a % 400 == 0:if b==1 or b==3 or b==5 or b==7 or b==8 or b==10:if c==31:print(a, end=' ')print(b+1,end=' ')print(1)else:print(a, end=' ')print(b, end=' ')print(c+1)elif b==2:if c==29:print(a, end=' ')print(b + 1, end=' ')print(1)else:print(a, end=' ')print(b, end=' ')print(c + 1)elif b==4 or b==6 or b==9 or b==11:if c==30:print(a, end=' ')print(b + 1, end=' ')print(1)else:print(a, end=' ')print(b, end=' ')print(c + 1)elif b==12:if c==31:print(a+1, end=' ')print(1, end=' ')print(1) else:if b==1 or b==3 or b==5 or b==7 or b==8 or b==10:if c==31:print(a, end=' ')print(b+1,end=' ')print(1)else:print(a, end=' ')print(b, end=' ')print(c+1)elif b==2:if c==28:print(a, end=' ')print(b + 1, end=' ')print(1)else:print(a, end=' ')print(b, end=' ')print(c + 1)elif b==4 or b==6 or b==9 or b==11:if c==30:print(a, end=' ')print(b + 1, end=' ')print(1)else:print(a, end=' ')print(b, end=' ')print(c + 1)elif b==12:if c==31:print(a+1, end=' ')print(1, end=' ')print(1)解法二 內(nèi)置函數(shù)datetime
import datetimey, m, d = map(int, input().split()) star = datetime.date(y, m, d) delta = datetime.timedelta(days=1) year = (star + delta).year month = (star + delta).month day = (star + delta).day print(f'{year} {month} {day}')4、分支結(jié)構(gòu)–出租費(fèi)用
題目描述
某城市出租車收費(fèi)標(biāo)準(zhǔn)是4公里內(nèi)(含4公里),按每公里2元收費(fèi),
如果超過4公里,其超過部分按每公里5元收費(fèi),請編程序計(jì)算乘車的費(fèi)用。
從鍵盤輸入乘車的距離(用d來表示),輸出需要的費(fèi)用(用p來表示)
輸入
從鍵盤輸入乘車的距離d(一個正整數(shù)) 0<d<=10000000
輸出
輸出需要的費(fèi)用p(一個正整數(shù))
輸入樣例 1
4
輸出樣例 1
8
題目分析
一道簡單的數(shù)學(xué)題
python代碼
d = int(input()) if d<=4:print(d*2) else:print((d-4)*5+8)5、分支結(jié)構(gòu)—數(shù)的倒著輸出
題目描述
請輸入小于100000的正整數(shù),請將它各個位置上的數(shù)倒著輸出,
并求各個位數(shù)數(shù)字的和?
例如:輸入12345 則輸出為:5 4 3 2 1 15
又如:輸入123 則輸出:3 2 1 6
輸入
輸入一個小于100000的正整數(shù)n
輸出
輸出若干個數(shù),數(shù)與數(shù)之間用空格分開,最后一個數(shù)是各個數(shù)字的和
輸入樣例 1
12345
輸出樣例 1
5 4 3 2 1 15
輸入樣例 2
123
輸出樣例 2
3 2 1 6
題目分析
這個題我直接用的list列表進(jìn)行轉(zhuǎn)換,當(dāng)然我覺的也可以把數(shù)的每一位存到數(shù)組里面,這里我就演示list轉(zhuǎn)換,其他方法大家可自行嘗試
python代碼
n = int(input()) a = [int(i) for i in str(n)] a = a[::-1] for i in a:print(i,end=' ') print(sum(a))6、分支結(jié)構(gòu)—成績等級
題目描述
根據(jù)輸入的學(xué)生成績給出相應(yīng)的等級,
大于或等于90分的等級為A,80~89為B等級,…,60分以下的等級為E,
其余每10分為一等級。
輸入
輸入一個正整數(shù)
輸出
輸出學(xué)生成績對應(yīng)的等級
輸入樣例 1
60
輸出樣例 1
D
題目分析
按照題目要求來就好。
python代碼
x = int(input()) if 90<=x:print('A') elif 80<=x<90:print('B') elif 70<=x<80:print('C') elif 60<=x<70:print('D') else:print('E')7、分支結(jié)構(gòu)—一門課不及格
題目描述
給出一名學(xué)生的語文和數(shù)學(xué)成績,判斷他是否恰好有一門課不及格(成績小于60分)。
若該生恰好有一門課不及格,輸出1;否則輸出0。
輸入
輸入兩個正整數(shù),用空格分開
輸出
輸出一個數(shù):0或者1
輸入樣例 1
1 1
輸出樣例 1
0
題目分析
簡單的條件判斷
python代碼
n,m=map(int,input().split()) if n>=60 and m<60:print(1) elif n<60 and m>60:print(1) else:print(0)8、分支結(jié)構(gòu)—水仙花數(shù)判斷
題目描述
輸入一個三位數(shù)n,判斷是否是水仙花數(shù),如果是,輸出1;
不是,則輸出0,水仙花數(shù)是指一個三位數(shù),
它的每個位上數(shù)字的3次冪之和等于它本身。例如153=13+23+5^3;
輸入
輸入格式:一個三位正整數(shù)
輸出
輸出格式: 一個整數(shù)0或1
輸入樣例 1
153
輸出樣例 1
1
題目分析
這個題算是比較經(jīng)典的入門題了,因?yàn)樗苫〝?shù)在1000以內(nèi),所以這里我用到了python里面的map函數(shù),用a,b,c來接收每一位,然后再進(jìn)行判斷。
python代碼
n=int(input()) a,b,c=map(int,str(n)) if a**3 + b**3 + c**3 == n:print(1) else:print(0)9、分支結(jié)構(gòu)— 判斷能否被3,5,7整除
描述
給定一個整數(shù)n,判斷它能否被3,5,7整除,并輸出以下信息:
能同時被3,5,7整除(直接輸出3 5 7,每個數(shù)中間一個空格);
只能被其中兩個數(shù)整除(輸出兩個數(shù),小的在前,大的在后。
例如:3 5或者 3 7或者5 7,中間用空格分隔);
只能被其中一個數(shù)整除(輸出這個除數(shù));
不能被任何數(shù)整除,輸出0;
輸入
輸入格式:一個正整數(shù)
輸出
輸出格式:輸出一行,按照描述要求給出整數(shù)被3,5,7整除的情況。
輸入樣例 1
105
輸出樣例 1
3 5 7
題目分析
這里的話直接挨個判斷就行了
python代碼
n=int(input()) if n%3==0 and n%5==0 and n%7==0:print("{} {} {}".format(3,5,7)) if n%3==0 and n%5==0 and n%7!=0:print("{} {}".format(3,5)) if n%3==0 and n%5!=0 and n%7==0:print("{} {}".format(3,7)) if n%3!=0 and n%5==0 and n%7==0:print("{} {}".format(5,7)) if n%3==0 and n%5!=0 and n%7!=0:print(3) if n%3!=0 and n%5==0 and n%7!=0:print(5) if n%3!=0 and n%5!=0 and n%7==0:print(7) if n%3!=0 and n%5!=0 and n%7!=0:print(0)10、分支結(jié)構(gòu)— 乘車計(jì)費(fèi)問題
題目描述
有m個成人和n個小孩去乘車,成人收費(fèi)標(biāo)準(zhǔn)2元/人,小孩1元/人;
允許一個成人帶一個小孩時小孩免費(fèi)。輸入成人和小孩人數(shù),請您
計(jì)算總的乘車費(fèi)用多少?
輸入
輸入格式:兩個正整數(shù)m和n,用空格隔開
輸出
輸出格式:一個正整數(shù)即乘車的總費(fèi)用
輸入樣例 1
1 1
輸出樣例 1
2
提示
數(shù)據(jù)規(guī)模:
0<m,n<100000
題目分析
一道簡單的數(shù)學(xué)題
python代碼
m,n=map(int,input().split()) if m>n:print(2*m) if m==n:print(2*m) if m<n:x = n-mprint(2*m+x)總結(jié)
分支結(jié)構(gòu)主要是鞏固語法基礎(chǔ),題目都不難,歡迎大家留言交流。
下一篇 算法練習(xí)-循環(huán)結(jié)構(gòu)
總結(jié)
- 上一篇: 条形码控件TBarCode SDK系列教
- 下一篇: CentOS7和CentOS8 Aste