質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

2回答

872閲覧

1~999までの数を英語に直せるようにプログラムを修正してください

Ficus

総合スコア5

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

1クリップ

投稿2022/09/20 16:25

編集2022/09/20 16:27

与えられた1~12までの数を英語表記の文字列として返す関数 num_to_str(n) を作成しました。
しかし、この次に与えられた「1~999までの数を英語に直せるようにプログラムを修正してください」という課題がわからず困っています。
修正するとどのように書けるのか教えていただけませんでしょうか。
使用言語はPythonです。

def num_to_str(n):
a =["one","two","three","four","five","six","seven","eight","nine","ten","eleven","twelve"]
return a[n-1]

初心者で至らぬ点もあるかと思いますが、よろしくお願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

otn

2022/09/20 16:34

999までの数を英語でどう言うかを全部知っていますか?
Ficus

2022/09/20 16:34

知っています。
otn

2022/09/20 17:40

では、1から12までと、13以上でルールが違うことがわかると思います。 1~12は不規則ですが、13以上は規則的ですね。その規則をプログラムにすれば良いです。
guest

回答2

0

ベストアンサー

100以上かどうかで判断した後、
残りの 2桁が 20以上かどうかで分類してみてはどうでしょうか?

Python

1def num_to_str(n): 2 a = [ 'one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 3 'nine', 'ten', 'eleven', 'twelve', 'thirteen', 'fourteen', 4 'fifteen', 'sixteen', 'seventeen', 'eighteen', 'nineteen', 5 'twenty', 'thirty', 'forty', 'fifty', 'sixty', 'seventy', 6 'eighty', 'ninety' ] 7 s = [] if n < 100 else [a[n//100-1], 'hundred'] 8 n %= 100 9 if n >= 20: 10 s.append(a[n//10+17]) 11 n %= 10 12 if n: 13 s.append(a[n-1]) 14 return ' '.join(s)

投稿2022/09/20 22:35

編集2022/09/21 04:15
kazuma-s

総合スコア8224

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

Pseudocode

1A ← floor(n/100) 2B ← mod(floor(n/10), 10) 3C ← mod(n, 10) 4output a[A-1] + a[B] + a[C]

投稿2022/09/20 16:35

編集2022/09/20 16:35
退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問