import numpy as np
#輸入乙個數n為皇后個數
n =int
(input()
)#因為要用到窮舉,所以確定乙個最小數1*n,乙個最大數n*n
min=
int(
'1'*n)
max=
int(
str(n)
*n)result =
#以n=5為例,從11111開始迭代到55555,判斷每乙個數,如果包含0,6,7,8,9,就跳過,如果沒有則判斷重複,如果沒有重複數字如22333這種,就加到result列表中。
for i in
range
(min
,max+1
):tem =
[int
(x)for x in
list
(str
(i))
] judge_list =
['1'if0
< x <= n else
'0'for x in tem]
iflen
(set
(tem)
)<
len(tem)
or'0'
in judge_list:
continue
else
:#對角線求和判斷,顧名思義,就是對每一條對角線進行求和運算,如果不存在和大於1的對角線,就為正確結果
zore =[[
0for i in
range
(n)]
for i in
range
(n)]
for i in
range
(len
(result)):
zore =[[
0for i in
range
(n)]
for i in
range
(n)]
for j in
range
(len
(result[i]))
: zore[j]
[result[i]
[j]-1]
=1for j in
range(1
,n):
tem =
for x in
range
(j+1):
[x])
ifsum
(tem)
>1:
break
ifsum
(tem)
>1:
break
ifsum
(tem)
>1:
continue
for j in
range
(n):
tem =
for x in
range
(j+1):
[n-1
-j+x])if
sum(tem)
>1:
break
ifsum
(tem)
>1:
break
ifsum
(tem)
>1:
continue
for j in
range
(n):
tem =
for x in
range
(j+1):
1-j+x]
[x])
ifsum
(tem)
>1:
break
ifsum
(tem)
>1:
break
ifsum
(tem)
>1:
continue
for j in
range
(n):
tem =
for x in
range
(j+1):
1-j+x]
[n-1
-x])
ifsum
(tem)
>1:
break
ifsum
(tem)
>1:
break
ifsum
(tem)
>1:
continue
zore = np.asarray(zore)
print
(zore)
方陣對角線元素求和及計數!!
對輸入的乙個n n的方陣,求其兩條對角線上的元素之和及非零元素的數量。輸入格式 第一行輸入乙個不超過20的正整數n,在接下來的n行中,依次輸入方陣的每一行的n個元素,方陣元素為絕對值不超過1000的整數,中間以空格間隔。輸出格式 在一行中以sum s count c 的格式輸出方陣兩對角線上的元素之...
題目 1024 程式設計入門 矩陣對角線求和
題目描述 求乙個3 3矩陣對角線元素之和。樣例輸入 1 2 3 1 1 1 3 2 1解題思路 設定兩個迴圈分別求兩個對角線的和,尋找兩條對角線的數學關係進行求解。部分 首先定義陣列,然後設定迴圈輸入矩陣,利用第乙個迴圈求主對角線的和關係是行列的座標數相同,利用第二個迴圈求斜對角線的 和,關係是座標...
python 矩陣按對角線列印
description 將乙個矩陣 二維陣列 按對角線向右進行列印。搜了一下發現好像是美團某次面試要求半小時手撕的題 example input 1,2,3,4 5,1,2,3 9,5,1,2 output 4 3,3 2,2,2 1,1,1 5,5 9 思路 考慮每條對角線開頭元素的index i...