여기서 우리는 오시리스 번호를 볼 것입니다. 오시리스 수는 자신의 자릿수 하위 샘플 순열의 합과 같은 종류의 수입니다. 숫자가 132라고 가정합니다. 그런 다음 {12 + 21 + 13 + 31 + 23 + 32}를 계산하면 이것도 132입니다. 따라서 숫자는 오시리스 수입니다. 주어진 번호가 오시리스 번호인지 확인해야 합니다.
접근 방식은 간단합니다. 숫자를 분석하면 각 숫자가 두 번 발생하므로 1의 위치와 10의 위치에 있습니다. 따라서 11을 곱하여 확인할 수 있습니다.
알고리즘
isOsirisNumber(n) -
Begin a := last digit b := second digit c := first digit digit_sum := a + b + c if n = (22 * digit_sum), then return true end if return false End
예시
#include using namespace std; bool isOsirisNumber(int n) { int a = n % 10; int b = (n / 10) % 10; int c = n / 100; int sum = a + b + c; if (n == (22 * sum)) { return true; } return false; } int main() { int n = 132; if (isOsirisNumber(n)) cout << "This is Osiris number"; else cout << "This is Not Osiris number"; }
출력
This is Osiris number