章
- 第一章
- 第2章
- 第三章
-
- 身長は平均より7-1高い
- 7-2 文字列内の出力文字の位置インデックス
- 7-3 整数の桁数と桁の和を求めよ
- 7-4 文字置換
- 7-5 文字を削除する
- 7-6 繰り返しのない英語の文字を 10 個出力する
- 7-7 逆順の 3 桁の数字
- 7-8 2 つの文字列がアナグラムかどうかを判断する
- 7-9 文字列を入力し、ソート後の元の文字列で最大の文字と文字のインデックスを出力する
- 7-10 n 個の文字列のうち、最も長い文字列の長さを計算する
- 7-11 1の数
- 7-12 整数のバイナリ加算
- 7-13 ハミング距離
- 7-14 回文列を求める
- 7-15 文字列を 1 行入力して 10 進出力に変換する
- 7-16 特定の条件を満たす文字数を数える
- 7-17 本人確認
- 第四章
-
- 7-1 入力数のべき乗表を生成する
- 7-2 素数を求める
- 7-3 指定した範囲の素数を表示して合計する
- 7-4 猿が桃を食べる問題
- 7-5 スコア列の最初の N 項の和を求める
- 7-6 送料割引
- 7-7 最大公約数と最小公倍数
- 7-8 条件を満たすフィボナッチ数を探す
- 7-9 入力値よりも誤差が小さい e の近似値を求める
- 午後7時~10時πの近似値
- 7-11 水仙の数
- 7-12 公開されていない要素を探す
- 7-13 番号を見つける
- 7-14 猿が王様を選ぶ
- 7-15 特定のマトリックス要素と
- 7-16 行列の行、列、対角和の最大値
- 7-17 三角行列の判定
- 7-18 柔術式表を印刷する
- 7-19 行列の極大値を求める
- 7-20 行列転置
- 7-21 直角デジタルグラフィックスを表示する
- 7-22 ひし形の表示
- 7-23 パスカル三角形を表示する
第一章
7-1 キーボードから2つの数値を入力し、それらの合計を計算して出力する
a=int(input())
b=int(input())
print(a+b)
7-2 キーボードから a、b、c に 3 つの数字を入力し、数式の値に従って出力する
a、b、cの3つの値を同じ行にスペースで区切って順番に入力し、の値b*b-4*a*c
を
a,b,c=input().split()
a,b,c=int(a),int(b),int(c)
print(b*b-4*a*c)
7-3 アウトプット「人生は短い、Pythonを学ぶ」
print("人生苦短,我学Python")
7-4 Hを書く
* でプログラムを書き、H を出力する
for i in range(1,6):
if i==3:
print("*****")
else:
print("* *")
第2章
7-1 計算11 + 12 + 13 + ⋯ + m 11+12+13+\dots+m1 1+1 2+1 3+⋯+メートル
正の整数を入力してくださいm ( 20 ≤ m ≤ 100 ) m(20\le m\le100)メートル( 2 0≤メートル≤1 0 0 )、計算11 + 12 + 13 + ⋯ + m 11+12+13+\dots+m1 1+1 2+1 3+⋯+mの値。
出力形式:「sum=S」「sum=S」
の形式で1行「スゥム_ _=S ”とSSに対応した出力S。 _
m=int(input())
S=0
for i in range(11,m+1):
S=S+i
print("sum = {}".format(S))
7-2 区分関数の計算
次の区分関数を評価します:
g ( x ) = { 0 x = 0 1 2 xx ! = 0 g(x)=\begin{cases}0\quad x=0\\\frac{1}{2x} \quad x!=0\end{ケース}g ( x )={
0バツ=02x _1× !=0
出力形式:「g(x)=結果」「g(x)=結果」
1行「g ( x )=結果」形式の出力、ここでxxxと結果結果はすべて予約済み33 _3位小数。
x=float(input())
if x!=0:
result=1/(2*x)
else:
result=0
print("g({0:.3f}) = {1:.3f}".format(x,result))
7-3 段階的な電気料金
家庭用ユーザーの電気料金は 2 つの「はしご」に分けられます: 毎月の電気使用量50 505 0 kwh (50 5050 kwh )、電気料金は0.53 0.530.5 3元/kwh;50以上5050kwh、余剰電力消費分、電気代が○○倍アップX元/kWh。
入力形式:
利用者の月間電力使用量(単位:kWh)と額をスペースで区切られたX値 (単位: 元)。
出力形式:
利用者が支払うべき電気料金(元)を1行で出力し、結果は小数点以下2桁、「コスト=支払うべき電気料金の額」の形式。
power,x=input().split()
power=int(power)
x=float(x)
if power<=50:
cost=0.53*power
else:
cost=0.53*50+(power-50)*(x+0.53)
print("cost = {:.2f}".format(cost))
7-4 奇数列の最初の N 個の項目の近似和を求める
シーケンスの最初のNNを計算するN項近似和1 + 1 / 3 + 1 / 5 + ⋯ 1+1/3 + 1/5 + \cdots1+1 / 3+1 / 5+⋯出力形式:「sum≒S」「sum≒S」
による1行「スゥム_ _≒S 」フォーマット出力近似およびSSS.SS __Sは、数列の合計よりも大きい最小の整数です。
import math
N=int(input())
s=0
for i in range(1,N+1,2):
a=float(1/i)
s=s+a
S=math.ceil(s)
print("sum ≈ {}".format(S))
7-5 インターリーブされたシーケンスの最初の N 項の和を求める
インターリーブ シーケンスのフロントNNを計算するN項の合計1 − 2 / 3 + 3 / 5 − 4 / 7 + 5 / 9 − 6 / 11 + ⋯ 1-2/3+3/5-4/7+5/9-6/11+ \ cdots1−2 / 3+3 / 5−4 / 7+5 / 9−6 / 1 1+⋯
N=int(input())
s=0
for i in range(1,N+1):
if i%2==1:
s=s+i/(2*i-1)
else:
s=s-i/(2*i-1)
print("{:.3f}".format(s))
7-6 同じ数字で n 桁を生成する
2 2で読む2 つの正の整数AAAとBBB,1 ≤ A ≤ 9 , 1 ≤ B ≤ 10 1\le A\le9, 1\le B\le101≤あ≤9 ,1≤B≤1 0、数 AA...A を生成、合計 B A
a,b=input().split(",")
a,b=int(a),int(b)
for i in range(1,b+1):
print(a,end='')
7-7 変換機能の使い方
整数と基数を入力し、10 進出力に変換します
a,b=input().split(",")
a,b=int(a),int(b)
c=(a//10)*b+(a%10)
print(c)
7-8 サイズ比較
入力3 33 つの異なる整数、これら3 33 つの整数は3 3に対応します3文字の ASCII コード値、これを3 3ASCII コード値の昇順で3文字を出力します。
a,b,c=input().split()
a,b,c=int(a),int(b),int(c)
i,j,k=chr(a),chr(b),chr(c)
if a>b:
i,j=j,i
if a>c:
i,k=k,i
if b>c:
j,k=k,j
print("{0:}<{1:}<{2:}".format(i,j,k))
7-9 出力摂氏華氏温度変換表
上下 2 つの正の整数 (-20<=lower<=upper<=50) を入力して、摂氏範囲を示します。摂氏-華氏温度変換表を数値範囲[下限、上限]で毎回摂氏2度刻みで出力してください。温度換算の計算式:$F=C×1.8+32
入力形式:
下限値と上限値を表す整数を1行に2つ入力し、スペースで区切って入力してください。
出力形式:
最初の行は「摂氏□□□□ファール」を出力
し、各行は摂氏摂氏 (整数) と華氏温度 (14 文字幅を占有し、右揃え、小数点以下 1 桁を保持) を出力します。 .
入力範囲が無効な場合は「無効」が出力されます。
lower,upper=map(int,input().split())
if -20<=lower<=upper<=50:
print("celsius fahr")
while lower<=upper:
f=float(lower*1.8+32)
print("{0:d}{1:>14.1f}".format(lower,f))
lower=lower+2
else:
print("Invalid.")
7-10 の偶数番号の特別なシーケンスと
9 を超えない正の整数 a が与えられ、正の整数 n が与えられた場合、n は 4<=n<=18 の偶数であり、aa+aaaa+aaaaaa+⋯+aa⋯a (n a) の合計を求めるプログラムを作成します。
a,n=map(int,input().split())
s=0
b=a
for i in range(1,n+1):
b=10*b+a
if i%2==1:
s=s+b
print(s)
7-11 概算二乗和と逆数列
m と n (m≤n) のシーケンス近似和を計算します。 m 2 +1/m+(m+1) 2 +1/(m+1)+⋯+n 2 +1/n
import math
a,b=map(int,input().split())
c=0
for i in range(a,b+1):
s=i**2+float(1/i)
c=s+c
S=math.floor(c)
print("sum ≈ {}".format(S))
7-12 計算関数 f(x)
f ( x ) = sin ( 35 ° ) + ex − 15 xx 4 + 1 − ln ( 7 x ) f(x)=sin(35°)+\frac{e^x-15x}{\sqrt{x^ 4+1}}-ln(7x)f ( x )=シン( 3 5 ° ) _ _+バツ4+1なeバツ−1 5 ×−l n ( 7 x )
import math
x=float(input())
y=math.sin(35*math.pi/180)+(math.e**x-15*x)/math.sqrt(x**4+1)-math.log(7*x)
print("f({0:})={1:.3f}".format(x,y))
7-13 区間別住民水道料金の算定
段階的な水消費量の価格設定によると、住民が支払うべき水料金 y (元) は、毎月の水消費量 x (トン) に関連しています。x が 15 トンを超えない場合、y=4x/3;超えた後、y=2.5x-17.5。
x=float(input())
if x<=15:
y=4*x/3
else:
y=2.5*x-17.5
print("{:.2f}".format(y))
7-14 指定した図形を出力する
正の整数 (1<=n<=7) を入力し、指定されたグラフィックスを出力します。(ヒント:*
演算子を使用)
n=int(input())
for i in range(1,n+1):
print('* '* i)
第三章
身長は平均より7-1高い
クラスの身長を測定しました。平均身長を超える身長を出力してください。プログラムの入力は、スペースで区切られた 1 行のデータであり、各データは正の整数です。プログラムは、入力された正の整数の平均を超える入力値を出力し、各数値の後にスペースが続き、出力順序は入力と同じです。
sheight = map(int,input().split())
theight = list(sheight)
average = sum([i for i in theight])/len(theight)
over = [n for n in theight if n > average]
for j in over:
print(j,end=' ')
7-2 文字列内の出力文字の位置インデックス
lst=(input())
a,b=input().split()
lst1=[]
for i in range(len(lst)):
if lst[i]==a or lst[i]==b:
lst1.extend([(i,lst[i])])
res=lst1[::-1]
for i in range(len(res)):
print(res[i][0],res[i][1])
7-3 整数の桁数と桁の和を求めよ
n=int(input())
t=[i for i in str(n)]
l=len(t)
s=sum([int(i) for i in t])
print(l,s)
7-4 文字置換
str = input()
lst = list(str)
for i in lst:
n = ord(i)
if n >= ord('A') and n <= ord('Z'):
n = ord('A')+ord('Z')-n
print(chr(n),end='')
7-5 文字を削除する
文字列 str を入力し、削除する文字 c を入力します。大文字と小文字は区別されません。文字列 str に含まれるすべての文字 c を削除します。
str = input().strip()
c = input().strip()
str = str.replace(c.upper(),'')
str = str.replace(c.lower(),'')
print("result: {}".format(str))
7-6 繰り返しのない英語の文字を 10 個出力する
文字列をランダムに入力し、左端の繰り返しのない英字 (大文字と小文字を区別しない) を 10 文字選びます。英字が10文字ない場合は「見つかりませんでした」というメッセージが表示されます
letter='abcdefghijklmnopgrstuvwxyz'
s=input().strip()
s1=s.lower()
t=list(s1)
t1=[k for k in range(len(t)) if t[k] in letter and t.index(t[k])==k]
s2=''.join([s[k] for k in t1])
if len(s2)>=10:
print(s2[:10])
else:
print("not found")
7-7 逆順の 3 桁の数字
プログラムは毎回正の 3 桁の数字を読み取り、その数字を逆順に出力します。注: 入力数値に末尾の 0 が含まれている場合、出力の先頭に 0 を含めないでください。たとえば、700 を入力すると、出力は 7 になります。
n=int(input())
s=str(n)
res=s[::-1]
print(int(res))
7-8 2 つの文字列がアナグラムかどうかを判断する
1 つの文字列が別の文字列の再配置された組み合わせである場合、2 つの文字列は互いのアナグラムです。たとえば、「heart」と「earth」はお互いのアナグラムであり、「Mary」と「arMy」はお互いのアナグラムです。
lst1 = list(input())
lst2 = list(input())
lst1.sort()
lst2.sort()
if lst1 == lst2:
print("yes")
else:
print("no")
7-9 文字列を入力し、ソート後の元の文字列で最大の文字と文字のインデックスを出力する
tup = tuple(input())
for i in tup:
if i == max(tup):
result = i
ind = len(tup)-1-tup[::-1].index(result)
print("{} {}".format(max(tup),ind))
7-10 n 個の文字列のうち、最も長い文字列の長さを計算する
n = int(input())
lst = []
lst1 = []
for i in range(1,n+1):
lst.append(input().strip())
for l in lst:
lst1.append(len(l))
length = max(lst1)
print("length={}".format(length))
7-11 1の数
負でない整数を入力し、2 進数になった後の 1 の数を見つけます
n = int(input())
count = 0
for i in bin(n):
if i == '1':
count += 1
print(count)
7-12 整数のバイナリ加算
の間のサイズの 2 つの整数を入力します[0,63]
。8 ビットで表されるバイナリ和を求めます。
m = int(input())
n = int(input())
a = m + n
m1 = int(format(m, "b"))
n1 = int(format(n, "b"))
a1 = int(format(a, "b"))
print("%08d" % m1)
print("%08d" % n1)
print("-" * 8)
print("%08d" % a1)
7-13 ハミング距離
2 つの整数間のハミング距離は、2 つの数値の対応するバイナリ ビットが異なる位置の数を指します。2 つの整数を入力x , y , 0 ≤ x , y ≤ 2 31 x,y, \quad0\le x,\quad y\le2^{31}× 、y 、0≤× 、y≤23 1出力x、yx、y× 、yのハミング距離
x,y = input().split()
x = int(x)
y = int(y)
count = 0
temp = bin(x^y)
for i in temp:
if i == '1':
count += 1
print(count)
7-14 回文列を求める
回文は文字列の中心対称であり、左から右に読んだ内容は右から左に読んだ内容と同じです。文字列を入力し、その文字列が回文かどうかを判定します. 数字と文字だけが考慮され、文字の場合は違いはありません.
s = input().lower()
str = ''.join([i for i in s if i.isalnum()])
str1 = str[::-1]
if str == str1:
print("yes")
else:
print("no")
7-15 文字列を 1 行入力して 10 進出力に変換する
文字列を 1 行入力し、16 進数以外の文字を削除して、10 進数の出力に変換します。
s = input().strip()
cha = '0123456789abcdeABCDE'
str = ''.join([i for i in s if i in cha])
print("{}\n{}".format(str,int(str,16)))
7-16 特定の条件を満たす文字数を数える
文字列 A (繰り返し文字なし) を入力し、文字列 B を入力して、文字列 A の文字数を調べます。これらの文字は同時に文字列 B に含まれている必要があります。
A = input().strip()
B = input().strip()
count = 0
for i in A:
if i in B:
count += 1
print(count)
7-17 本人確認
法的な ID カード番号は、17 桁の地域、日付番号、およびシーケンス番号と 1 つのチェック コードで構成されます。チェックコードの計算規則は次のとおりです。
最初に、最初の 17 桁が重み付けされて合計され、重み付け分布は {7、9、10、5、8、4、2、1、6、3、7 です。 , 9, 10, 5 , 8, 4, 2}; 次に、11 を法として計算された合計を取り、値 Z を取得します; 最後に、次の関係に従って、Z 値とチェック コード M の値に対応します。
Z:0 1 2 3 4 5 6 7 8 9 10
M:1 0 X 9 8 7 6 5 4 3 2
いくつかの ID 番号が与えられたら、チェック コードの有効性を確認し、問題の番号を出力してください。
n=int(input())
wrong=0
w=(7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2)
m=('1','0','X','9','8','7','6','5','4','3','2')
for i in range(n):
s=input()
t=list(s)
c=[t[i] for i in range(0,17) if ord(t[i]) in range(ord('0'),ord('9')+1)]
if len(c)<17:
print(s)
wrong+=1
else:
a=sum([int(t[i])*w[i] for i in range(17)])
z=a%11
if m[z]!=t[17]:
print(s)
wrong+=1
if wrong==0:
print("All passed")
第四章
7-1 入力数のべき乗表を生成する
負でない正の整数nnを入力してくださいn、3 ≤ n ≤ 9 3\le n\le93≤n≤9、入力数のべき乗表を生成する。出力n + 1 n+1べき乗の昇順n+1行、計算結果保持2 22位小数。
a,n = input().split()
a,n = float(a),int(n)
for i in range(n+1):
print("{0:.1f}**{1:d}={2:.2f}".format(a,i,a**i))
7-2 素数を求める
import math
N = int(input())
count = 0
for i in range(1,N+1):
num = int(input())
for j in range(2,int(math.sqrt(num))):
if num%j == 0:
count += 1
if count == 0:
print("Yes")
else:
print("No")
7-3 指定した範囲の素数を表示して合計する
指定された範囲の素数を表示します。素数の間には 1 つのスペースがあり、5 行ごとに改行されます。素数の数と素数の和を 1 行に出力します。
M,N = map(int,input().split())
amount = 0
sum = 0
for i in range(M,N+1):
count = 0
if i>1:
for j in range(2,i):
if i%j == 0:
count += 1
if count == 0:
amount += 1
sum += i
print(i,end=' ')
if amount%5 == 0:
print()
print("\namount={} sum={}".format(amount,sum))
7-4 猿が桃を食べる問題
サルは初日に数個の桃を摘み、すぐに半分食べて満足できなかったので、別の桃を食べ、翌朝、残りの桃の半分を食べ、さらにもう1個食べました。その後、毎朝、前日の残り半分+1個食べていました。N日目の朝、また食べようと思ったら、桃が1個しか残っていなかった。質問: 初日に何個の桃が収穫されましたか?
N = int(input())
n = 1
for i in range(1,N):
n = (n+1)*2
print(n)
7-5 スコア列の最初の N 項の和を求める
シーケンスを計算します2 / 1 + 3 / 2 + 5 / 3 + 8 / 5 + . . . 2/1+3/2+5/3+8/5+...2 / 1+3 / 2+5 / 3+8 / 5+. . .最初の N 個のアイテムの合計。シーケンスは項目 2 から始まり、各項目の分子は前の項目の分子と分母の合計であり、分母は前の項目の分子であることに注意してください。
N = int(input())
a,b,c,sum = 1,2,0,0
for i in range(1,N+1):
sum += b/a
c = b
b = a+b
a = c
print("{:.2f}".format(sum))
7-6 送料割引
運送会社がユーザーの運賃を計算します。距離(S)が遠いほど、1キロあたりの送料が安くなります。基本的な輸送料金は、1 トン 1 キロあたり 1 元で、標準は次のとおりです。
W,S = map(eval,input().split())
if S<250:
cost = W*S
if S>=250 and S<500:
cost = 0.98*W*S
if S>=500 and S<1000:
cost = 0.95*W*S
if S>=1000 and S<2000:
cost = 0.92*W*S
if S>=2000 and S<3000:
cost = 0.9*W*S
if S>=3000:
cost = 0.85*W*S
print(int(cost))
7-7 最大公約数と最小公倍数
M,N = map(int,input().split())
a = 1
for i in range(2,min(M,N)):
while(M%i == 0 and N%i == 0):
M,N = M/i,N/i
a = a*i
print("{} {}".format(a,int(a*M*N)))
7-8 条件を満たすフィボナッチ数を探す
フィボナッチ数列とも呼ばれるフィボナッチ数は、1、1、2、3、5、8、13、21、...、1、1、2、3、5、8、13、 21, ...,1 、1 、2 、3 、5 、8 、1 3 、2 1 、……、このシーケンスは 3 番目の項目から始まり、各項目は前の 2 つの項目の合計に等しくなります。入力数値より大きい最小のフィボナッチ数を見つけます。
n = int(input())
lst = [1,1]
while(lst[-1]<=n):
lst.append(lst[len(lst)-2]+lst[len(lst)-1])
print(lst[-1])
7-9 入力値よりも誤差が小さい e の近似値を求める
自然定数eee は級数1 + 1 / 1 ! + 1 / 2 ! + ⋯ + 1 / n ! 1+1/1!+1/2!+⋯+1/n! を1+1 / 1 !+1/2 !_ _+⋯+1 / n !計算を近似します。えいえいe私前の i 項目の合計を表します。入力誤差範囲誤差誤差e r r o r ,当ei + 1 − ei < エラー e_{i+1}-e_i<エラーei + 1−e私<エラーはeeを意味しますeの近似は誤差範囲を満たします。
error = float(input())
a,b = 1,1
s1 = 1+1/1
s2 = 1+1/1+1/2
while((s2-s1) > error):
b = b+1
a = a*b
s1 += 1/a
s2 += 1/(a*(b+1))
print("{:.6f}".format(s2))
午後7時~10時πの近似値
数式を使用してπ πを見つけますπの概算値: π 2 / 6 = 1 + 1 / 2 2 + 1 / 3 2 + 1 / 4 2 + … π^2/6=1+1/2^2+1/3^2+1/ 4 ^2+\ドット円周率2 /6=1+1 / 22+1 / 32+1 / 42+...合計項が誤差よりも小さい場合、合計を終了します。
import math
error = float(input())
s = 1
i = 1
while(1/(i**2) > error):
i += 1
s += 1/(i**2)
pi = math.sqrt(s*6)
print("{:.6f}".format(pi))
7-11 水仙の数
水仙の数はNNを指しますN桁の正の整数( N ≥ 3 ) (N≥3)( N≥3 ) の場合、各ビットの数値の N 乗の合計はそれ自体に等しくなります。例:153 = 1 × 1 × 1 + 5 × 5 × 5 + 3 × 3 × 3 153=1×1×1+5×5×5+3×3×31 5 3=1×1×1+5×5×5+3×3×3
N = int(input())
i = 0
for n in range(10**(N-1),10**N):
sum = 0
for j in range(0,N):
i = n//(10**j)%10
sum += i**N
if sum == n:
print(n)
7-12 公開されていない要素を探す
lst1 = input().split()
lst2 = input().split()
for i in lst1:
count = 0
for j in lst2:
if i == j:
count +=1
if count == 0:
print(i,end=' ')
for i in lst2:
count = 0
for j in lst1:
if i == j:
count +=1
if count == 0 and i!=lst2[-1]:
print(i,end=' ')
if count == 0 and i == lst2[-1]:
print(i,end='')
7-13 番号を見つける
完全数とは、自分自身を除いた約数の和と正確に等しい数です。例: 6 = 1 + 2 + 3 6=1+2+36=1+2+3、そのうち1, 2, 3 1, 2, 31 、2 、3は6 6係数6 。
import math
m,n= map(int,input().split())
count = 0
for i in range(m,n+1):
lst = [1]
for j in range(2,int(math.sqrt(i))+1):
if i%j == 0:
lst.append(j)
if j*j != i:
lst.append(i//j)
if i == sum([a for a in lst]):
count += 1
print('{} = '.format(i), end="")
lst.sort()
print(" + ".join("%s" %a for a in lst))
if count == 0:
print("None")
7-14 猿が王様を選ぶ
猿のグループが新しい猿の王様を選びたいと思っています。新しい猿王の選択方法は: let NNN個の候補サルが円を形成し、1 1 の1~NNN数。1st1カウントは 1 日から始まり、各ラウンドは1 11チェックイン3 33、登録は3 33 の猿は円を出て、隣の次の猿から同じカウントを開始します。このサイクルが続き、最後に残った猿が猿王に選ばれます。すみません、猿王に選ばれたのはどの猿ですか?
N = int(input())
lst = []
for i in range(1,N+1):
lst.append(i)
length = 0
index = 1
while True:
if len(lst) == 1:
print(lst[0])
break
if length == len(lst):
length = 0
if index == 3:
del lst[length]
index = 1
else:
index += 1
length += 1
7-15 特定のマトリックス要素と
与えられたn×nn×nn×nの正方行列の場合、行列の主対角と副対角のすべての要素の合計を計算します。主対角線はマトリックスの左上隅から右下隅までの線であり、副対角線はマトリックスの右上隅から左下隅までの線です。
n = int(input())
lst = []
sum = 0
for i in range(n):
lst.append(input().split())
for j in range(n):
for k in range(n):
if j == k or j+k == n-1:
sum += float(lst[j][k])
print("{:.2f}".format(sum))
7-16 行列の行、列、対角和の最大値
3*3 行列の各行、列、対角の最大値を見つける
num = input().split()
lst = [num[:3],num[3:6],num[6:]]
lst1 = []
sum3,sum4 = 0,0
for i in range(3):
sum1,sum2 = 0,0
for j in range(3):
sum1 += int(lst[i][j])
sum2 += int(lst[j][i])
if i == j:
sum3 += int(lst[i][j])
if i+j == 2:
sum4 += int(lst[i][j])
lst1.append(sum1)
lst1.append(sum2)
lst1.append(sum3)
lst1.append(sum4)
print(max(lst1))
7-17 三角行列の判定
三角行列には、上三角行列と下三角行列があります。上三角行列は主対角より下の要素がすべて 0 の行列を指し、下三角行列は主対角より上の要素がすべて 0 の行列を指し、主対角は行列の左上隅からの接続です。右下隅に。
T = int(input())
for i in range(1,T+1):
n = int(input())
lst = []
for j in range(n):
lst.append(input().split())
index,index1 = 0,0
for h in range(n):
for l in range(n):
if l<h:
index += int(lst[h][l])
if l>h:
index1 += int(lst[h][l])
if index == 0 and index1 != 0:
print("upper triangular matrix")
elif index1 == 0 and index != 0:
print("lower triangular matrix")
else:
print("no")
7-18 柔術式表を印刷する
N = int(input())
for i in range(1,N+1):
for j in range(1,i+1):
print("%d*%d=%-4d"%(j,i,j*i),end='')
if j == i:
print()
7-19 行列の極大値を求める
与えられたMMM行NNN列の整数行列AAA,如果 A A Aの非境界要素A [ i ] [ j ] A[i][j]A [ i ] [ j ]が上下左右の 4 つの隣接する要素よりも大きい場合、その要素はA [ i ] [ j ] A[i][j] とA [ i ] [ j ]は行列の極大値です。
M,N = map(int,input().split())
A = []
for n in range(M):
A.append(list(map(int,input().split())))
count = 0
for i in range(1,M-1):
for j in range(1,N-1):
if A[i][j]>A[i-1][j] and A[i][j]>A[i][j-1] and A[i][j]>A[i+1][j] and A[i][j]>A[i][j+1]:
print(A[i][j],i+1,j+1)
count += 1
if count == 0:
print("None {} {}".format(M,N))
7-20 行列転置
m,n = map(int,input().split())
A = []
for i in range(m):
A.append(list(map(int,input().split())))
A1 = []
for i in range(n):
j = 0
while(j<m):
A1.append(str(A[j][i]))
j += 1
for i in range(n):
print(' '.join(A1[i*m:(i+1)*m]))
7-21 直角デジタルグラフィックスを表示する
n = int(input())
for i in range(1,n+1):
for j in range(1,i+1):
print(chr(j+64),end='')
print()
7-22 ひし形の表示
n = int(input())
for i in range(1,n+1,2):
print('{:^11s}'.format('*'*i))
for i in range(n-2,0,-2):
print('{:^11s}'.format('*'*i))
7-23 パスカル三角形を表示する
n = int(input())
print('1 ')
if n>1:
print("1 1 ")
add = 0
i = 3
lst = [1, 1]
while(i<n+1):
lst1 = lst[:]
lst = [1, 1]
for j in range(1,i-1):
add = lst1[j-1]+lst1[j]
lst.insert(-1,add)
i += 1
for k in lst:
print(k,end=' ')
print()