如题所述
#include <stdio.h>
void main()
{
int i = 0,count = 1,n;
printf("请输入一个1~15以内的正整数:\n");
scanf("%d",&i);
for(n = 1;n <= i;i--)
{
count = count * i;
}
printf("阶乘值为%d\n",count);
}
温馨提示:答案为网友推荐,仅供参考
第1个回答 推荐于2018-05-07
这里需要注意一下int的范围在13,14,15的时不够用,可以换成double,不过懒得改,就写成long long int了
#include <stdio.h>
long long int fun(long long int n)
{
if(n==0||n==1)
return 1;
else
return n*fun(n-1);
}
int main()
{
int n=100;
if(n<0||n>15)
{
printf("请输入0~15以内的数:");
scanf("%d",&n);
}
printf("%d的阶乘是%I64d\n",n,fun((long long int)n));
return 0;
}本回答被网友采纳
#include <stdio.h>
long long int fun(long long int n)
{
if(n==0||n==1)
return 1;
else
return n*fun(n-1);
}
int main()
{
int n=100;
if(n<0||n>15)
{
printf("请输入0~15以内的数:");
scanf("%d",&n);
}
printf("%d的阶乘是%I64d\n",n,fun((long long int)n));
return 0;
}本回答被网友采纳
第2个回答 2014-04-14
#include<stdio.h>
int main()
{
int n, i;
scanf("%d", &n);
long long ans = 1;
for(i = 1; i <= n; i++)
ans *= i;
printf("%lld", ans);
return 0;
}
int main()
{
int n, i;
scanf("%d", &n);
long long ans = 1;
for(i = 1; i <= n; i++)
ans *= i;
printf("%lld", ans);
return 0;
}
第3个回答 2018-05-07
int n;
printf("请输入15以内的正整数:");
scanf_s("%d", &n);
int i,result;
result = 1;
if (n < 15 && n>0)
{
for (i = 0; i < n; i++)
{
result = result * (n - i);
}
printf("阶乘结果为%d\n", result);
}
else
printf("error!\n");
给出了一个范围,看不懂可以再问我
printf("请输入15以内的正整数:");
scanf_s("%d", &n);
int i,result;
result = 1;
if (n < 15 && n>0)
{
for (i = 0; i < n; i++)
{
result = result * (n - i);
}
printf("阶乘结果为%d\n", result);
}
else
printf("error!\n");
给出了一个范围,看不懂可以再问我
第4个回答 2014-04-14
#include <stdio.h>
main()
{
int i = 0,count = 1,n;
printf("Please input a number in [1,15]:\n");
scanf("%d",&i);
for(n = 1;n <= i;n ++)
{
count = count * i;
}
printf("%d\n",count);
return 0;
}
main()
{
int i = 0,count = 1,n;
printf("Please input a number in [1,15]:\n");
scanf("%d",&i);
for(n = 1;n <= i;n ++)
{
count = count * i;
}
printf("%d\n",count);
return 0;
}