[10655]一手
🔗 質問リンク
https://www.acmicpc.net/problem/1065
問題の説明
正の整数Xの各位置が等差数列である場合、その数を1つの数と呼ぶ.等差数列とは、連続する2つの数の差が一定の数列を指す.Nが与えられた場合、プログラムを作成し、1以上、N以下の数値を出力します.
⚠▼制限
最初の行は、1000以下の自然数Nを与える.
最初の行は、1以上、N以下の数値を出力します.
💡 プール(言語:Python)
軽く直感的に解いてくれました.等差数列を前後項の差異が一定であるか否かに分けてflag変数に格納することでcountか否かを判別する.
n = input()
lis = [int(x) for x in n]
count = 0
for i in range(1, int(n)+1):
# 공차
gap = 0
# 등차수열인지 여부
flag = True
# 숫자를 각자리 숫자 하나씩 쪼갠 리스트
numList = [int(x) for x in str(i)]
for j in range(1, len(numList)):
# 첫 한쌍으로 공차를 정함
if j == 1:
gap = numList[j-1] - numList[j]
# 중간에 하나라도 등차수열 아니면 반복 중단
elif numList[j-1] - numList[j] != gap:
flag = False
break
# 등차수열이면 카운트
if flag:
count += 1
print(count)
Reference
この問題について([10655]一手), 我々は、より多くの情報をここで見つけました https://velog.io/@shiningcastle/1065-한수テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol