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

C++で4と7で作られた数字の中から与えられた数字の位置を見つけます


この問題では、番号Nが与えられます。私たちのタスクは、4と7で構成される番号の中から、指定された番号の位置を見つけることです。4と7のみで構成される級数は、4、7、44、47、74、77、 444…。

問題を理解するために例を見てみましょう

入力

N = 5

出力

74

説明

Series upto 5 terms is 4, 7, 44, 47, 74…

ソリューションアプローチ

この問題の簡単な解決策は、シリーズのパターンを見つけることに基づいています。

ここでは、すべての偶数の位置に最後に7が含まれています。

そして、すべての奇数の位置には、最後に4が含まれます。

したがって、1桁ずつ進み、現在の桁に基づいて位置を見つけることで、シリーズを見つけることができます。

現在の桁が4の場合、位置はposition =(position * 2)+1として更新されます。

現在の桁が7の場合、位置はposition =(position * 2)+2として更新されます。

ソリューションの動作を説明するプログラム

#include <iostream>
using namespace std;
int findNumPosition(string num){
   int i = 0, position = 0;
   while (num[i] != '\0') {
      position *= 2;
      if(num[i] == '4')
         position += 1;
      else
         position += 2;
      i++;
   }
   return position;
}
int main() {
   string num = "74774";
   cout<<"The position of the number in the series is "<<findNumPosition(num);
   return 0;
}

出力

The position of the number in the series is 53

  1. C++を使用してサッカーの五角形と六角形の数を見つける

    ご存知のように、五角形と六角形はサッカーの重要な部分です。これらの形状は、完全な球形を形成するためのパズルのように組み合わされます。ですから、ここにサッカーがあり、六角形と五角形を見つける必要があります。 問題を簡単に解決するためにオイラー標数を使用します。オイラー標数は、位相空間の特定の形状または構造を記述するために機能する数値です。したがって、サッカーの五角形と六角形の数を計算するために使用できます。 オイラー標数- chi(S) −比表面積Sの整数 F −顔 G −グラフ V −頂点 E −エッジはSに埋め込まれています。 V - E + F

  2. 3つの数字の中から最大の数字を見つけるC++プログラム

    3つの数値の中で最大の数値は、ifステートメントを複数回使用して見つけることができます。これは次のようにプログラムで与えられます- 例 #include <iostream> using namespace std; int main() {    int a = 5 ,b = 1 ,c = 9;    if(a>b) {       if(a>c)       cout<<a<<" is largest number"; &n