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

C++で2/n =1 / x + 1 / y + 1 / zを満たすx、y、zを見つけます


この問題では、整数値nが与えられます。私たちのタスクは、 2 / nx + 1 / y + 1 / zを満たすx、y、zを見つけることです。

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

Input : n = 4
Output : 4, 5, 20

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

この問題の簡単な解決策は、nの値を使用して解決策を見つけることです。

n =1の場合、方程式の解はありません。

n> 1の場合、方程式の解はx =n、y =n + 1、z =n(n + 1)です。

解は$2/ n \:=\:1 / n \:+ 1 \:(n + 1)\:+ \:1 /(n ^ *(n \:+ \:1))$

>

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

#include <iostream>
using namespace std;
void findSolution(int a, int b, int n){
   for (int i = 0; i * a <= n; i++) {
      if ((n - (i * a)) % b == 0) {
         cout<<i<<" and "<<(n - (i * a)) / b;
         return;
      }
   }
   cout<<"No solution";
}
int main(){
   int a = 2, b = 3, n = 7;
   cout<<"The value of x and y for the equation 'ax + by = n' is ";
   findSolution(a, b, n);
   return 0;
}

出力

The value of x and y for the equation 'ax + by = n' is 2 and 1

  1. オイラー数の値を計算するPythonプログラムe。式を使用します:e =1 + 1/1! + 1/2! +……1/n!

    オイラーの数を実装する必要がある場合は、階乗を計算するメソッドが定義されます。 これらの階乗数の合計を求める別の方法が定義されています。 以下は同じのデモンストレーションです- 例 def factorial_result(n):    result = 1    for i in range(2, n + 1):       result *= i    return result def sum_result(n):    s = 0.0    for

  2. シリーズ1/1の合計を見つけるPythonプログラム! + 2/2! + 3/3! + 4/4! +……。+n/ n!

    この記事では、特定の問題ステートメントを解決するための解決策とアプローチについて学習します。 問題の説明 −整数入力nが与えられた場合、級数1/1の合計を見つける必要があります。 + 2/2! + 3/3! + 4/4! +……。+n/ n! ここではforループを実装しているため、時間計算量としてO(n)を取得します。 ここで効率を達成するために、同じループ内で階乗を計算します。 ここでは、以下に説明するようにsumofseries関数をフレーム化します- 例 def sumOfSeries(num):    res = 0    fact =