実現したいこと
python3において、標準入力から整数を入力するとその整数の各位の和を求めるプログラムを書く。
前提
整数をxとする。
文字列として扱うのは禁止で、あくまで数式を処理して解を求める。
方針は思いついているため、この方針でプログラムを書きたいと思います。
1.xの桁数を取得する(ketaとする)(←lenが使えないので困っています。)
2.xを10の(keta-1)乗で割り、商を求める。(例;123//100==1)
3.xから(keta-1)(2で求めた数)を引き、それを10の(keta-2)乗で割り、商を求める。(例;(123-1001)//10==2)
4.(2,3)のプロセスを(keta)回繰り返す
5.(2、3)で出てきた答えを足し上げ、printする
発生している問題・エラーメッセージ
TypeError Traceback (most recent call last) <ipython-input-7-18a684c5b204> in <cell line: 3>() 1 #問題4-1 2 x=int(input("整数>")) ----> 3 keta=int(len(x)) 4 5 for i in range(1,keta): TypeError: object of type 'int' has no len()
該当のソースコード
python3
1 2x=int(input("整数>")) 3keta=int(len(x)) 4 5for i in range(1,keta): 6 y=x//(10**(keta-i)) 7 y+=(x-10**(keta-i)*y)//(10**(keta-i-1)) 8print(y) 9
疑問点
単純な繰り返し処理はできるのだが、今回のようにプロセス中で出てきた値を繰り返し処理にまた組み込む入れ子構造になっているとよく分からない。
繰り返しの切れ目をどこにすればいいのか分からない。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2023/06/06 12:49
2023/06/06 12:50
2023/06/06 13:00 編集
2023/06/06 13:03
2023/06/06 13:38
2023/06/06 14:59