首页 > 试题广场 >

n的阶乘

[编程题]n的阶乘
  • 热度指数:48652 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 64M,其他语言128M
  • 算法知识视频讲解
输入一个整数n,输出n的阶乘(每组测试用例可能包含多组数据,请注意处理)

输入描述:
一个整数n(1<=n<=20)


输出描述:
n的阶乘
示例1

输入

3

输出

6
#include<stdio.h>
int main(){
	int N,i;
	long long int sum=0;
	
	while(scanf("%d",&N)!=EOF){
		sum=1;
		for(i=1;i<=N;i++){
			sum=sum*i;
		}
		printf("%lld",sum);
	}
}

发表于 2024-03-19 22:18:14 回复(0)
#include<stdio.h>

//13!会超出int的上限
long long factorial(long long n)
{
  if(n<2)
  {
    return 1;
  }
  else
  {
    return n*factorial(n-1);
  }
}

int main()
{
  long long n;
  while(scanf("%lld",&n)!=EOF)
  {
    printf("%lld\n",factorial(n));
  }
  return 0;

}

发表于 2023-09-17 09:19:06 回复(0)
#include <stdio.h>
//大数阶乘 n!
int main(){
    int i,j,n;
    int num=0,digit=1;
    int tmp=0;
    int a[100]={0};
    a[0]=1;
    scanf("%d",&n); 
    for(i=2;i<=n;i++){
        num=0;
        for(j=0;j<digit;j++){
            tmp=a[j]*i+num;
            a[j]=tmp%10;
            num=tmp/10;
        }
        while(num){
            a[digit]=num%10;
            num/=10;
            digit++;
        }
    }
    for(i=digit-1;i>=0;i--){
        printf("%d",a[i]);
    }


    return 0;
}

发表于 2023-09-15 17:40:19 回复(0)
		
		
#include <stdio.h>
int main()
{
  int a;
  while (scanf("%d", &a) != EOF)
  { // 注意 while 处理多个 case
    long long int fact = 1;
    for (int i = 1; i <= a; i++)
      fact *= i;
    printf("%lld\n", fact);
  }
  return 0;
}

编辑于 2022-03-21 20:12:58 回复(0)
笨又简单理解的办法
#include<stdio.h>
int main(){
    int n;
    long long int sum = 0;
    long long int ans = 1;
    scanf("%d",&n);
    if(n==1)
        printf("1");
    else{
    for(int i=n;i>1;i=i-2){
        sum = i * (i-1);
        ans = ans * sum;
        }
        printf("%lld",ans);
    }
    
}


发表于 2022-03-19 10:26:25 回复(0)
//ky17n的阶乘
#include<stdio.h>

int main(){
	int n;
	while(scanf("%d",&n)!=EOF){
		long tar=1;
		for(int i=n;i>=1;i--)
			tar*=i;
		printf("%ld",tar);
		printf("\n");
	}
}

发表于 2022-01-23 18:35:48 回复(0)
#include <stdio.h> int main()
{ int i,n; long long sum=1;
scanf("%d",&n); for(i=1;i<=n;i++)
    sum=sum*i;
printf("%lld",sum); return 0;
}

发表于 2021-11-11 22:06:19 回复(0)
#include <stdio.h>
#include <stdlib.h>

long int fact(int n) {
  if (!n) return 1;
  return fact(n - 1) * n;
}

int main(const int argc, const char* const argv[]) {
  int n;
  while (fscanf(stdin, "%d", &n) != EOF)
    fprintf(stdout, "%ld", fact(n));
  return 0;
}

发表于 2021-07-27 17:52:50 回复(0)

问题信息

难度:
13条回答 17960浏览

热门推荐

通过挑战的用户

查看代码
n的阶乘