凑平方数
0から9までの10個の数字を複数のグループに分け、各グループは正確に正方形の数字です。これは実行できます。例:0、36、5948721
および例:1098524736 1、25、6390784 0、4、289、15376など...
0は独立した番号として使用できますが、複数の桁の先頭として使用することはできません。グループ化する場合、すべての番号を使い切る必要があり、繰り返したり省略したりすることはできません。
小さいグループのデータの順序がカウントされない場合、いくつの異なるグループ化スキームがありますか?
アイデア:
この質問は全体の配置に似ています。最初に10桁の正方形の数字を保存し、次に保存された正方形の数字を互いに配置してから、10個の異なる数字を取り出して解決策を見つけます。答えは300です。
プログラム:
con=0
def dfs(s,k):
global con
if len(s)>=10 or k>=len(z):
if len(s)==10 and 10==len(set(str(s))):
con+=1
return
for i in range(k,len(z)):
s1=z[i]+s
if len(s1)>10:
break
dfs(s1,i+1)
z=[]
for i in range(0 ,100000):
i=i*i
if len(list(str(i)))==len(set(str(i))):
z.append(str(i))
dfs("",0)
print(con)
転載は禁止されています。自習のみ。プログラムエラーについては責任を負いません。