コラッツの問題で整数nを何回繰り返したら1になるかを調べるプログラムを作っているのですが、上手くいきません。
Python
1def collatz(n): 2 i=0 3 while n != 1: 4 if n%2==0: 5 n = n/2 6 i=i+1 7 elif n%2 != 0: 8 n=3*n+1 9 i=i+1 10 else: 11 return(i)
これをテストファイルで実行するとiの値がNoneと出てきます。
↓テストファイル中身↓
Python
1import unittest 2from koratta import collatz 3 4class TestCollatz(unittest.TestCase): 5 def test_1(self): 6 self.assertEqual(collatz(1), 0) 7 8 def test_6(self): 9 self.assertEqual(collatz(6), 8) 10 11 def test_8(self): 12 self.assertEqual(collatz(8), 3) 13 14 15if __name__ == '__main__': 16 unittest.main(verbosity=2) 17
↓test_1を実行したときの文↓
AssertionError: None != 0
回答4件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。