>백엔드 개발 >C++ >숫자의 합으로 숫자가 나누어지는지 확인하는 C 프로그램

숫자의 합으로 숫자가 나누어지는지 확인하는 C 프로그램

王林
王林앞으로
2023-08-30 16:05:081602검색

숫자의 합으로 숫자가 나누어지는지 확인하는 C 프로그램

숫자 n이 주어지면 숫자의 합이 n으로 나누어지는지 확인해야 합니다. 알아내려면 일의 자리부터 시작하여 모든 숫자를 더한 다음 최종 합계를 해당 숫자로 나누어야 합니다.

예를 들어 숫자 "521"이 있고 그 숫자의 합, 즉 "5 + 2 + 1 = 8"을 찾아야 하지만 521은 8로 나눌 수 없고 나머지도 그렇지 않습니다. 0.

또 다른 예인 "60"은 숫자의 합이 "6 + 0 = 6"이고 6은 60을 나눌 수 있고 나머지는 0입니다.

Example

Input: 55
Output: No
Explanation: 5+5 = 10; 55 not divisible by 10
Input: 12
Output: Yes
Explanation: 1+2 = 3; 12 is divisible by 3

아래에서 사용된 방법은 다음과 같습니다.

이 문제를 해결하려면 입력에서 각 숫자를 가져와 각 숫자의 합을 계산한 다음 숫자를 나누는지 확인해야 합니다.

  • 입력 받기
  • 일 자리부터 시작하는 각 숫자를 가져와 초기 값이 0인 합계 변수에 추가합니다.
  • 입력을 숫자의 합으로 나눕니다.
  • 결과 반환

알고리즘

In function int isDivisible(long int num)
   Step 1-> Declare and initialize temp = num, sum = 0
   Step 2-> Loop While num
      Declare and initialize k as num % 10
   Set sum as sum + k
      Set num as num / 10
   End Loop
   Step 3-> If temp % sum == 0 then,
      Return 1
   Step 4-> Return 0
      End function
In main()
   Step 1-> Declare and initialize num as 55
   Step 2-> If isDivisible(num) then,
      Print "yes "
   Step 3-> Else
Print "no "

예시

데모

#include <stdio.h>
// This function will check
// whether the given number is divisible
// by sum of its digits
int isDivisible(long int num) {
   long int temp = num;
   // Find sum of digits
   int sum = 0;
   while (num) {
      int k = num % 10;
      sum = sum + k;
      num = num / 10;
   }
   // check if sum of digits divides num
   if (temp % sum == 0)
      return 1;
      return 0;
}
int main() {
   long int num = 55;
   if(isDivisible(num))
      printf("yes</p><p>");
   else
      printf("no</p><p>");
      return 0;
}

출력

위 코드를 실행하면 다음 출력이 생성됩니다 −

No

위 내용은 숫자의 합으로 숫자가 나누어지는지 확인하는 C 프로그램의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 tutorialspoint.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제