Python
 Computer >> コンピューター >  >> プログラミング >> Python

PythonのOctalで番号が回文であるかどうかを確認します


8進数または10進数の数値があるとします。これが8進数の場合は、回文かどうかを確認してください。 10進数の場合は、8進数に変換してから、回文かどうかを確認します。

したがって、入力がnum =178のような場合、数値が8進数ではないため、出力はTrueになります(8は8進数では有効な記号ではありませんが、10進数では有効です)。次に、2進数の262に変換します。回文。

これを解決するには、次の手順に従います-

  • base:=numのすべての桁が8未満の場合は8、それ以外の場合は10
  • oct_list:=新しいリスト
  • numが0でない場合は、
    • oct_listの最後に(num mod base)を挿入します
    • num:=(num / base)の商
  • j:=oct_listのサイズ-1
  • k:=0
  • k <=jの場合、do
    • oct_list[j]がoct_list[k]と同じでない場合、
      • Falseを返す
    • j:=j-1、k:=k + 1
  • Trueを返す

理解を深めるために、次の実装を見てみましょう-

def is_all_under_8(num):
   while num:
      if (num % 10) >= 8:
         return False
      else:
         num = int(num / 10)
      return True
def solve(num):
   base = 8 if(is_all_under_8(num) == False) else 10
   oct_list = []
   while num != 0:
      oct_list.append(num % base)
      num = int(num / base)
   j = len(oct_list)-1
   k = 0
   while k <= j:
      if oct_list[j] != oct_list[k]:
         return False
      j-=1
      k+=1
   return True
num = 178
print(solve(num))

入力

178

出力

True

  1. PythonでNが二面素数であるかどうかを確認します

    数nがあるとします。 nが二面素数であるかどうかを確認する必要があります。数自体が素数であり、ディスプレイの向き(通常または上下逆)に関係なく、7セグメントディスプレイを使用して同じ数または他の素数が表示される場合、その数は二面素数であると言われます。 したがって、入力がn =1181のような場合、出力はTrueになります 2つ目は、1つ目の逆さまの形式で、どちらも素数です。 これを解決するには、次の手順に従います- 関数up_side_down()を定義します。これにはnがかかります temp:=n、total:=0 0の場合、do d:=temp mod 10

  2. バイナリ表現が回文であるかどうかをチェックするPythonプログラム?

    ここでは、さまざまなpython組み込み関数を使用します。まず、bin()を使用して数値を2進数に変換し、次に2進数形式の文字列を逆にして、元の文字列と比較します。一致する場合は回文、そうでない場合は回文です。 例 Input: 5 Output: palindrome 説明 5のバイナリ表現は101です それを逆にすると、結果は101になり、オリジナルと比較して一致します。 したがって、その回文 アルゴリズム Palindromenumber(n) /* n is the number */ Step 1: input n Step 2: convert n into binar