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

배열로 표현되는 숫자에 1을 더하세요(재귀적 접근)?

<시간/>

숫자 배열로 표현되는 음수가 아닌 숫자의 모음인 배열이 주어지면 숫자에 1을 더합니다(숫자로 표현되는 숫자를 증가시킴). 가장 중요한 숫자가 배열의 첫 번째 요소가 되도록 숫자가 저장됩니다.

숫자로 표시되는 숫자에 1을 더하려면

  • 주어진 배열의 끝에서 덧셈은 마지막 4를 5로 반올림하는 것을 의미합니다.

  • 마지막 요소가 9이면 0으로 만들고 =1을 나른다.

  • 다음 반복을 위해 캐리를 확인하고 10이 추가되면 2단계와 동일하게 수행합니다.

  • 캐리를 추가한 후 다음 반복을 위해 carry =0으로 만듭니다.

  • 벡터가 벡터 크기를 추가하고 늘리는 경우 처음에 1을 추가합니다.

배열에 [7, 6, 3, 4] 요소가 있다고 가정하고 배열은 10진수 1234를 나타내므로 여기에 1을 추가하면 7635가 됩니다. 따라서 새 배열은 [7, 6, 3, 5]가 됩니다.

예시

Input: [7, 6, 9, 9]
Output: [7, 7, 0, 0]
Input: [4, 1, 7, 8, 9]
Output: [4, 1, 7, 9, 0]

설명 배열의 마지막 요소가 9보다 작으면 1을 추가합니다. 요소가 9이면 0으로 만들고 배열의 나머지 요소에 대해 재귀합니다.

예시

#include <iostream>
using namespace std;
void sum(int arr[], int n) {
   int i = n;
   if(arr[i] < 9) {
      arr[i] = arr[i] + 1;
      return;
   }
   arr[i] = 0;
   i--;
   sum(arr, i);
   if(arr[0] > 0) {
      cout << arr[0] << ", ";
   }
   for(int i = 1; i <= n; i++) {
      cout << arr[i];
      if(i < n) {
         cout << ", ";
      }
   }
}
int main() {
   int n = 4;
   int arr[] = {4, 1, 7, 8, 9};
   sum(arr, n);
   return 0;
}