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

C番号が特定のベースに属しているかどうかを確認するプログラム


文字列とベースとして数値を指定します。タスクは、指定された数がその指定されたベースのものであるかどうかを確認することです。

2進数の場合は2、8進数の場合は8、10進数の場合は10、16進数の場合は16のような基数がある記数法に従って、数と基数を確認する必要があります。これによると、文字列内の指定された数値が特定のベースに属しているかどうかを確認する必要があります。特定のベースに属している場合は、出力画面に「はい」と出力する必要があります。それ以外の場合は、出力画面で「いいえ」。

ご存知のように、数/式「1A6」は16進数、「1010」は2進数ですが、これは視覚的な分析だけで判断できるので、問題を解決する方法を見つける必要があります。プログラム。

Input: str = “1010”, base =2
Output: yes
Input: str = “1AA4”, base = 16
Output: yes
Input: str = “1610”, base = 2
Output: No

特定の問題を解決するために使用するアプローチ

  • ベースが2〜16の間にあるかどうかを確認します。
  • 次に、ストライグの各桁が特定のベースに属しているかどうかを確認します。
  • に属している場合はtrueを返し、そうでない場合はfalseを返します。

アルゴリズム

Start
Step 1 -> In function bool isInGivenBase(char str[], int base)
   If base > 16 then,
      Return false
   Else If base <= 10 then,
   Loop For i = 0 and i < strlen(str) and i++
      If !(str[i] >= '0' and str[i] < ('0' + base)) then,
         Return false
      Else
      Loop For i = 0 and i < strlen(str) and i++
         If NOT ((str[i] >= '0' && str[i] < ('0' + base)) ||
            (str[i] >= 'A' && str[i] < ('A' + base – 10) ) then,
            Return false
            Return true
   Step 2 -> In function int main()
      Set str[] = {"AF87"}
      If isInGivenBase(str, 16) then,
         Print "yes "
      Else
         Print "No "
Stop

#include <ctype.h>
#include <stdio.h>
#include <string.h>
bool isInGivenBase(char str[], int base) {
   // Allowed bases are till 16 (Hexadecimal)
   if (base > 16)
      return false;
      // If base is below or equal to 10, then all
      // digits should be from 0 to 9.
   else if (base <= 10) {
      for (int i = 0; i < strlen(str); i++)
      if (!(str[i] >= '0' and
         str[i] < ('0' + base)))
         return false;
   }
   // If base is below or equal to 16, then all
   // digits should be from 0 to 9 or from 'A'
   else {
      for (int i = 0; i < strlen(str); i++)
      if (! ((str[i] >= '0' &&
         str[i] < ('0' + base)) ||
         (str[i] >= 'A' &&
         str[i] < ('A' + base - 10))
      ))
      return false;
   }
   return true;
}
// Driver code
int main() {
   char str[] = {"AF87"};
   if (isInGivenBase(str, 16))
      printf("yes\n");
   else
      printf("No\n");
   return 0;
}

出力

yes

  1. 与えられた数がPythonでナルシシスト数であるかどうかをチェックするプログラム

    数nがあるとします。 nの桁数の合計から桁数の累乗に等しいかどうかを確認する必要があります。 したがって、入力が9474のような場合、出力は9 ^ 4 + 4 ^ 4 + 7 ^ 4 + 4 ^ 4 =6561 + 256 +2401 + 256=9474としてTrueになります。 これを解決するには、次の手順に従います- s:=nの数字のリスト nがs内のすべてのxのx*(sのサイズ)の合計と同じ場合はtrueを返し、それ以外の場合はfalseを返します 理解を深めるために、次の実装を見てみましょう- 例 class Solution:    def solv

  2. 数値が素数かどうかをチェックするPythonプログラム

    ここでは、1より大きい指定された数が素数であるかどうかをテストするプログラムを作成します。 素数は1より大きい正の整数であり、2つの因子1と、その数自体(たとえば、数:2、3、5、7…など)は2つの因子しかないため、素数です。 1と番号自体。 # Python program to check if the input number is prime or not #Take input from the user num = int(input("Please enter the number: ")) #Check if the given number is gre