Computer >> 컴퓨터 >  >> 프로그램 작성 >> C++

C++에서 곱과 합 사이의 주어진 차이로 N 정수 찾기


두 개의 정수 N과 D가 있다고 가정합니다. N 정수 집합을 찾아야 합니다. 여기서 합과 곱의 차이는 D와 같습니다. N =3이라고 가정하고, D =5이면 출력은 1, 2, 8이 됩니다. 여기서 합은 1 + 2 + 8 =11이고 곱은 1 * 2 * 8 =16이고 16과 11의 차이는 5입니다.

우리는 이 문제를 해결해야 합니다. 우리는 한 가지 까다로운 방법을 사용할 것입니다. 여기서 우리는 N–2개의 1, 1, 2, 나머지 1개의 N + D를 찾으려고 노력할 것입니다. 따라서 합, 곱 및 차이는 -

가 됩니다.
  • 합계 =(N – 2)*1 + 2 + (N + D) =2*N + D
  • 제품 =(N – 2)*1 * 2 * (N + D) =2*N + 2*D
  • 차이 =(2*N + 2*D) – (2*N + D) =D

예시

#include<iostream>
using namespace std;
void getNNumbers(int n, int d) {
   for (int i = 0; i < n - 2; i++)
      cout << 1 << " ";
   cout << 2 << " ";
   cout << n + d << endl;
}
int main() {
   int N = 5, D = 8;
   getNNumbers(N, D);
}

출력

1 1 1 2 13