Computer >> 컴퓨터 >  >> 프로그래밍 >> PHP

숫자의 각 자릿수를 합산하는 PHP 프로그램

숫자의 각 자릿수 합산하기

프로그래밍에서 숫자의 각 자릿수를 모두 더하는 연산은 자주 활용되는 기본 기법입니다. 예를 들어 숫자 65의 자릿수를 합산하면 6 + 5 = 11이 됩니다. PHP에서는 문자열 인덱싱과 반복문을 조합하면 몇 줄의 코드로 이를 손쉽게 구현할 수 있습니다.

구현 예제

숫자의 자릿수를 합산하는 PHP 코드는 다음과 같습니다.

<?php
   function sum_of_digits($my_num){
      $sum = 0;
      for ($i = 0; $i < strlen($my_num); $i++){
         $sum += $my_num[$i];
      }
      return $sum;
   }
   $my_num = "65";
   print_r("The sum of digits is ");
   echo sum_of_digits($my_num);
?>

실행 결과

The sum of digits is 11

코드 동작 원리

위 코드의 동작 과정을 단계별로 살펴보겠습니다.

1. 함수 정의: 'sum_of_digits'라는 이름의 함수가 정의되며, 하나의 정수(문자열 형태)를 매개변수로 받습니다.

function sum_of_digits($my_num){
   $sum = 0;
   for ($i = 0; $i < strlen($my_num); $i++){
      $sum += $my_num[$i];
   }
   return $sum;
}

2. 합계 초기화 및 반복 처리: 함수 내부에서는 먼저 변수 $sum을 0으로 초기화합니다. 이후 strlen() 함수로 입력값의 길이를 확인하고, for 반복문을 돌면서 i번째 위치의 문자를 $sum에 차례대로 더해갑니다. PHP는 문자열의 개별 문자를 산술 연산 시 자동으로 숫자로 변환해 주기 때문에 별도의 형 변환 없이 합산이 가능합니다.

3. 결과 반환 및 호출: 반복이 끝나면 함수는 최종 합계를 반환합니다. 함수 외부에서는 변수에 값을 대입한 뒤, 해당 값을 매개변수로 전달하며 함수를 호출합니다.

$my_num = "65";

더 간결한 대안: array_sum() 활용

PHP의 내장 함수를 활용하면 동일한 로직을 한 줄로 표현할 수도 있습니다.

<?php
   $my_num = "65";
   $sum = array_sum(str_split($my_num));
   echo "The sum of digits is " . $sum;
?>

str_split() 함수가 문자열을 개별 문자 배열로 분리하고, array_sum()이 배열 요소들의 합계를 계산합니다. 코드가 짧아 가독성이 뛰어나다는 장점이 있으며, 숫자 길이와 관계없이 안정적으로 동작합니다.