基本情報技術者試験に向けて勉強中です。
Pythonで、Google Colaboratoryにて実施したプログラムです。
問題ではC言語で出題されたようですが、勉強のためPythonで取り組んでいます。
参考書を読んでプログラム全体をトレースしても、なぜTrueとFalseを判定出来るのか理解ができずに質問させていただきました。
下記において、
exists_at(i//p_rn, j//p_cn,d-1)==0:
こちらの式でTrueとFalseをなぜ判定できるのか、理解が出来ませんでした。
例えば、
exists_at(0, 0, 1)==0はFalseになります。
exists_at(1, 1, 2)==0はTrueになります。
pat=[[1,1],[1,0]] p_rn=len(pat) p_cn=len(pat[0]) def print_frac(d): rn=cn=1 for i in range(d): rn *= p_rn cn *= p_cn for i in range(rn): for j in range(cn): print('*' if exists_at(i,j,d) else " ",end=" ") def exists_at(i,j,d): if d == 0: return 1 elif exists_at(i//p_rn, j//p_cn,d-1)==0: return 0 else: return pat[i%p_rn][j%p_cn]
教えていただけますと幸いです。
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/05/24 14:49