Pythonのハッピー数
数nがあるとします。ハッピー数が1つかどうかを確認します。ご存知のように、ハッピー数は数値であり、正の整数で始まり、数値をその桁の2乗の合計で置き換えます。このプロセスは、1になるまで繰り返されます。それ以外の場合は、サイクルで無限にループします。これらの数字は、1が見つかったときに、幸せな数字になります。
したがって、入力は19のようになり、数値はハッピー数であるため、出力はtrueになります。 19からわかるように、次のようになります
1 2 + 9 2 =82
8 2 + 2 2 =68
6 2 + 8 2 =100
1 2 + 0 2 + 0 2 =1
これを解決するには、次の手順に従います-
- ここでは、動的計画法のアプローチを使用し、再帰を使用してこれを解決します
- 基本的なケースは、n =1の場合、trueを返します
- nがすでにアクセスされている場合は、falseを返します
- 訪問済みとしてnをマーク
- n:=nを文字列として、l:=nのすべての数字のリスト
- temp:=すべての桁の合計の2乗
- パラメータtempと訪問先リストを使用して関数を再帰的に返す
理解を深めるために、次の実装を見てみましょう-
例
class Solution(object): def isHappy(self, n): return self.solve(n,{}) def solve(self,n,visited): if n == 1: return True if n in visited: return False visited[n]= 1 n = str(n) l = list(n) l = list(map(int,l)) temp = 0 for i in l: temp += (i**2) return self.solve(temp,visited) ob = Solution() print(ob.isHappy(19))
入力
19
出力
True
-
Pythonで浮動小数点数をクランプする方法は?
クランプ機能は、値を特定の範囲に制限します。 Pythonにはそのような関数が組み込まれていません。この関数は次のように作成できます def clamp(num, min_value, max_value): return max(min(num, max_value), min_value) print(clamp(5, 1, 20)) print(clamp(1, 10, 20)) print(clamp(20, 1, 10)) これにより、出力が得られます 5 10 10
-
Pythonで数値を比較する方法は?
Pythonで関係演算子を使用して、Pythonの数値(floatとintの両方)を比較できます。これらの演算子は、それらの両側の値を比較し、それらの間の関係を決定します。変数aが10を保持し、変数bが20を保持すると仮定すると、 演算子 例 == (a ==b)は正しくありません。 != (a!=b)は真です。 b)は正しくありません。 (a