1) res..."."/> 1) res...".">
집 >백엔드 개발 >C#.Net 튜토리얼 >C 언어에서 n의 계승을 계산하는 방법
C 언어에서 n의 계승을 계산하는 방법: 1. "for (i = 1; i <= n; i++){fact *= i;}"와 같은 코드인 for 루프를 통해 계승을 계산합니다. 2. while 루프를 통해 계승값을 계산하려면 코드는 "while (i <=fact="" int="" res="n;if" n=""> 1)res..."와 같습니다.
이 튜토리얼의 운영 환경: Windows 7 시스템, c99 버전, Dell G3 컴퓨터.
C 언어에서 n의 계승을 어떻게 계산하나요?
n의 계승을 찾는 문제에 관해 먼저 질문을 보고 그 질문을 사용하여 돌파점을 찾아보겠습니다.
문제 설명
주어진 정수 n에서 팩토리얼인 0≤n≤12
Input
숫자 n을 입력하세요
Output
숫자 A 출력 n
Sample Input
5
Sample Output
120
Factorial을 찾고 있으니 돌파구는 뻔합니다
획기적인 point는 : Factorial
factorial의 개념과 배경:
1️⃣Concept:
양의 정수의 계승은 해당 숫자보다 작거나 같은 모든 양의 정수의 곱이며, 0은 1입니다. 자연수 n의 계승은 n!으로 표시됩니다.
2️⃣배경:
1808년 크리스티안 크람프(1760~1826)가 이 표기법을 도입했습니다.
3️⃣ 계승 계산 방법:
1보다 크거나 같은 모든 자연수 n 계승 표현 방법: n!=1×2×3×…×(n-1)×n 또는 n!= n× (n-1)!참고: 0의 계승은 1, 즉 0입니다! =1. 1! = 1
2! = 2 * 1 = 2
3! = 3 * 2 * 1 = 6
…
n! = n * (n-1) *… * 2 * 1
①for loop
#include<stdio.h>int main(){ int n; scanf("%d", &n); int fact = 1; int i; for (i = 1; i <= n; i++) { fact *= i; } printf("%d\n", fact); return 0;}테스트 예시 : 51 * 2 * 3 * 4 * 5 = 120
5120--------------------------------Process exited after 1.475 seconds with return value 0请按任意键继续. . .
②while loop
#include<stdio.h>int main(){ int n; scanf("%d", &n); int fact = 1; int i = 1; while (i <= n) { fact *= i; i++; } printf("%d\n", fact); return 0;}테스트 예시 : 61 * 2 * 3 * 4 * 5 * 6 = 720
6720--------------------------------Process exited after 1.549 seconds with return value 0请按任意键继续. . .
1️⃣작성 방법 1
#include <stdio.h>int Fact(int n);int main() //主函数{ int n, cnt; scanf("%d", &n); cnt = Fact(n); printf("%d\n", cnt); return 0;} int Fact(int n) //递归函数 { int res = n; if (n > 1) res = res * Fact(n - 1); return res;}
1️⃣写法一
75040--------------------------------Process exited after 2.563 seconds with return value 0请按任意键继续. . .
测试样例:7
7 * 6 * 5 * 4 * 3 * 2 * 1
= 1 * 2 * 3 * 4 * 5 * 6 * 7
= 5040
#include <stdio.h>int Fact(int n) //递归函数 { int res = n; if (n > 1) res = res * Fact(n - 1); return res;}int main() //主函数 { int n, cnt; scanf("%d", &n); cnt = Fact(n); printf("%d\n", cnt); return 0;}
当然也可以写成这样:
2️⃣写法二
테스트 샘플: 7
7 * 6 * 5 * 4 * 3 * 2 * 1
= 1 * 2 * 3 * 4 * 5 * 6 * 7 = 5040
6720--------------------------------Process exited after 1.829 seconds with return value 0请按任意键继续. . .
2️⃣작성 방법 2
rrreee테스트 예: 6
위 내용은 C 언어에서 n의 계승을 계산하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!