Pythonで特定の範囲内の特別な数の数を見つけるためのプログラム
整数の範囲が与えられ、その範囲内の特殊な数を見つけるように求められたとします。特殊数とは、小数表現が1桁しかない正の整数の数です。小数表現に1桁を超える数値が含まれる数値は、その数値が小数表現の桁数で割り切れ、商の値自体が特殊な数値である場合にも特殊になる可能性があります。指定された範囲(left_limit、right_limit)の特殊な数値の数を返します。
したがって、入力がleft_limit =5、right_limit =30の場合、出力は13になります。
この範囲の特別な番号は、5、6、7、8、9、10、12、14、16、18、20、24、および28です。
これを解決するには、次の手順に従います-
- right_limit <10の場合、
- return right_limit --left_limit + 1
- len_right:=(right_limit)の文字列表現のサイズ
- number_list:=[0,1,2,3,4,5,6,7,8,9,10,12,14,16,18]
- 範囲2からlen_right+1のjの場合、do
- number_listのkごとに、
- temp1:=k * j
- temp1の文字列表現のサイズがjと同じ場合、
- number_listの最後にtemp1を挿入します
- それ以外の場合、len(str(temp1))> jの場合、
- ループから抜け出す
- number_list[number_listのサイズ-1]>=right_limitの場合、
- ループから抜け出す
- number_listのkごとに、
- number_listから重複する値を削除して並べ替える
- count:=0
- number_listのtemp2ごとに、
- temp2>=left_limitおよびtemp2<=right_limitの場合、
- count:=count + 1
- temp2>=left_limitおよびtemp2<=right_limitの場合、
- 返品数
例
理解を深めるために、次の実装を見てみましょう-
def strange(left_limit, right_limit): if right_limit < 10: return right_limit - left_limit + 1 len_right = len(str(right_limit)) number_list = [0,1,2,3,4,5,6,7,8,9,10,12,14,16,18] for j in range(2, len_right + 1): for k in number_list: temp1 = k*j if len(str(temp1)) == j: number_list.append(temp1) elif len(str(temp1)) > j: break if number_list[len(number_list)-1] >= right_limit: break number_list = list(set(number_list)) count = 0 for temp2 in number_list: if temp2 >= left_limit and temp2 <= right_limit: count = count + 1 return count print(strange(5, 30))
入力
5, 30
出力
13
-
Pythonの特定のグラフで特別なタイプのサブグラフを見つけるプログラム
頭と足という名前の2つのタイプの頂点を持つ特別なタイプのグラフがあるとします。グラフにはヘッドが1つだけあり、ヘッドを各足に接続するk個のエッジがあります。したがって、無向、無加重のグラフが与えられた場合、グラフの頂点が互いに素なサブグラフで、これらの特殊なタイプのグラフを見つける必要があります。共通の頂点がない場合、2つのグラフは頂点が互いに素であると言われます。 したがって、入力が次のような場合 ノード数(n)=5、フィート数(t)=2の場合、出力は5になります。 与えられたグラフの頂点が互いに素なサブグラフであるそのような特別なグラフが5つある可能性があります。 これを解決
-
Pythonでgodownに入れるボックスの数を見つけるためのプログラム
整数を含む2つの配列があるとします。 1つのリストには、いくつかのユニット幅ボックスの高さが含まれ、別の配列には、godownの部屋の高さが含まれます。部屋には0...nの番号が付けられ、部屋の高さは配列godownのそれぞれのインデックスに示されます。ゴダウンに押し込める箱の数を調べなければなりません。いくつかの点に注意する必要があります ボックスを重ねることはできません。 ボックスの順序は変更できます。 ボックスは左から右にのみゴダウンに入れられます。 ボックスが部屋の高さよりも高い場合、そのボックスとその右側のすべてのボックスをゴダウンに押し込むことはできません。