> 백엔드 개발 > C++ > 본문

C 프로그램에서 숫자 배열로 표현되는 숫자에 1을 추가하시겠습니까?

PHPz
풀어 주다: 2023-09-07 12:49:17
앞으로
1019명이 탐색했습니다.

Adding one to number represented as array of digits in C Program?

이 섹션에서는 흥미로운 질문을 보게 될 것입니다. 숫자가 주어졌다고 가정해보자. 이 숫자를 1씩 늘려야 합니다. 이것은 매우 간단한 작업입니다. 하지만 여기서는 숫자를 배열로 배치하겠습니다. 숫자의 각 숫자는 배열의 요소로 배치됩니다. 숫자가 512이면 {5, 1, 2}로 저장됩니다. 그리고 숫자를 늘리려면 재귀적인 방법을 사용해야 합니다. 명확한 아이디어를 얻기 위해 알고리즘을 살펴보겠습니다.

알고리즘

increment(arr, n, index) −

Initially the default value of index is 0
begin
   if index < n, then
      if arr[index] < 9, then
         arr[index] := arr[index] + 1
      else
         arr[index] := 0
         increment(arr, n, index + 1)
   end if
   if index = n, then
      arr[n] := 1
      n := n + 1
   end if
end
로그인 후 복사

Example

#include <iostream>
#include <cmath>
#define MAX 20
using namespace std;
void increment(int num_arr[], int &n, int index = 0){
   if(index < n){
      if(num_arr[index] < 9){ //if digit is less than 9, add 1
         num_arr[index]++;
      }else{ //otherwise increase number recursively
         num_arr[index] = 0;
         increment(num_arr, n, index+1);
      }
   }
   if(index == n){
      num_arr[n] = 1; //add extra carry
      n++; //increase n
   }
}
void dispNumber(int num_arr[], int n){
   for(int i = n-1; i>= 0; i--){
      cout << num_arr[i];
   }  
   cout << endl;
}
int numToArr(int num_arr[], int number){
   int i = 0;
   int n = log10(number) + 1;
   for(int i = i; i< n; i++){
      num_arr[i] = number % 10;
      number /= 10;
   }
   return n;
}
main() {
   int number = 1782698599;
   int num_arr[MAX];
   int n = numToArr(num_arr, number);
   cout << "Initial Number: "; dispNumber(num_arr, n);
   increment(num_arr, n);
   cout << "Final Number: "; dispNumber(num_arr, n);
}
로그인 후 복사

Output

Initial Number: 1782698599
Final Number: 1782698600
로그인 후 복사

위 내용은 C 프로그램에서 숫자 배열로 표현되는 숫자에 1을 추가하시겠습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:tutorialspoint.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!