[白俊]4673号:セルフサービス番号(Python)



質問する



私の最初の答え

setNum=set(i for i in range(1,10000))
genNum=set()
def d_number(n):
    n+=sum(map(int,str(n)))
    return n
for i in setNum:
    genNum.add(d_number(i))
print(sorted(setNum.difference(genNum)))
setnumの範囲指定エラー.

私の2番目の答え

setNum=set(i for i in range(1,10001))
genNum=set()
def d_number(n):
    n+=sum(map(int,str(n)))
    return n
for i in setNum:
    genNum.add(d_number(i))
print(sorted(setNum.difference(genNum)))
出力フォーマットエラーが検出されました.
因子を1つずつ印刷します.

私の答え

setNum=set(range(1,10001))
genNum=set()
def d_number(n):
    n+=sum(map(int,str(n))) #각자리 더하기
    return n
for i in setNum: #생성자 추가
    genNum.add(d_number(i))

for i in sorted(setNum.difference(genNum)):
    print(i)
#print(sorted(setNum.difference(genNum))) #전체 수에서 생성자가 아닌 수(셀프넘버) 출력
生成されていない数字を自動番号と呼びます.
それを求めて印刷します.
まず、生成者を計算し、セルフ番号ではなく数字を求める.
全体的に除外すればいいです.
setNumには1から10000までの数字が格納されています.
gennumは空の集合を格納します.
d number関数は問題のd(n)に各ビット数を加算する.つまり、生成者を持つ数字を求める.
空のコレクションに後続の作成者を追加します.
for i in sorted(setNum.difference(genNum)):
差異を使用して、グローバル(setNum)からジェネレータセット(genNum)を除外し、セカンダリセットから除外します.
昇順に並べる.