c语言编写.从键盘输入一个正整数.求出其阶乘并输出。用函数实现
编程实现计算n!,也就是n*(n-1)*(n-2)*....*1,可以通过递归函数来实现,具体实现方法:
#include int Func(int n){if(n < 2)
return 1;
else
return n*Func(n-1);
}
void main(){int n =0,m=0;
printf("请输入一个正整数:")
scanf("%d",&n);
m=Func(n);
printf("%d!=%d
",n,m);}
在以上程序代码中,Func()为递归函数,主函数main()中接收键盘输入整数值后,调用Func()递归函数,首层m=n*(n-1)!,继续递归调用,m=n*(n-1)(n-2)!,这样逐层递归,直到计算出N!。
程序输出结果如下:
扩展资料:
所谓n的阶乘就是从1到n的乘积,所以除了递归法来实现以外,其实我们也可以通过一个for循环,从1到n依次求积同样可以达到计算n!的目地。
具体实现代码如下:
#include
int main() {int n,i,s=1;scanf("%d",&n);
for(i=1;i<=n;i++)//for循环求累积
s=s*i;
printf("%d
",s);
return 0;
}
/*运行结果:(例如求5的阶乘)5120*/
按照你的要求编写的求阶乘的Java程序如下
import java.util.Scanner;
public class DDD {
public static void main(String[] args) {
System.out.print("请输入一个正整数(1~10)");
Scanner sc=new Scanner(System.in);
int n=sc.nextInt();
if(n10){
System.out.println("无效数据!");
return;
}
System.out.print(n+"!=");
int result=1;
for(int i=1;i<=n;i++){
result=result*i;
if(i==n)
System.out.print(i+"=");
else
System.out.print(i+"x");
}
System.out.print(result);
}
}
运行结果
请输入一个正整数(1~10)44!=1x2x3x4=24
double fun ( int n )
{ double result = 1.0 ;
if (n == 0)
return 1.0 ;
while( n >1 && n < 170 )
result *= n--;
return result ;
}
main ( )
{ int n ;
printf("Input N:") ;
scanf("%d", &n) ;
printf("\n\n%d! =%lf\n\n", n, fun(n)) ;
}
祝你愉快,记得采纳哈!不懂欢迎追问哈~\(≧▽≦)/~
int func(int n) {
int t = 1;
for(int i=1; i<=n; i++) {
t = t * i;
}
return t;
}
编写C语言程序,从键盘上输入一个正整数,计算并输出该数各位数字之和...
include<stdio.h> include<math.h> main(){ int n,m,sum;printf("please input:");scanf("%d",&m);for(sum=0;m;m=m\/10){ n=m%10;sum=sum+n;} printf("sum is %d",sum);} 大概想了下思路,你看看吧,不知道对错
编写C语言程序, 从键盘输入一个正整数N(N<=10),并输出
源程序如下:include <stdio.h> int main(){ int n,i,j,sum=1,t;scanf("%d", &n);for(i=1;i<=n;i++){ t=1;for(j=1;j<=i;j++){ t *= 2; \/\/每次计算2 ^ i 出来 } sum += t; \/\/sum加上算出来的2 ^ i } printf("%d\\n", sum);return 0;} ...
C语言编程从键盘上输入任意一个无符号数(正整数),将该数各位数字相加后...
include <stdio.h> include <stdlib.h> int sum(int a){ if(!a)return 0;int cout = a%10;return cout + sum(a\/10);} int main(int argc, char *argv[]){ if(argc != 2){ printf("error input\\n");exit(-1);} printf("%d\\n", sum(atoi(argv[1])));return 0;} ...
用c语言编程从键盘输入一个较大正整数n(n>=6),并验证从6到n之间的所有...
include <stdio.h> int fun(int n){ if(n==2)return 1;for(int i=2;i<n;i++){ if(n%i==0)return 0;} if(i>=n)return 1;} int main(int argc, char* argv[]){ int n;printf("输入大于6的正整数\\n");scanf("%d",&n);for(int j=6;j<n;j++){ if(j%2==0){ ...
用C语言编写程序从键盘输入一个正整数数n,输出n!
include <stdio.h>int Func(int n){if(n < 2)return 1;else return n*Func(n-1);} void main(){int n =0,m=0;printf("请输入一个正整数:")scanf("%d",&n);m=Func(n);printf("%d!=%d\\n",n,m);} 在以上程序代码中,Func()为递归函数,主函数main()中接收键盘输入整数...
用C语言编写程序从键盘输入一个正整数数n,输出n!
直接输出计算阶乘的C语言代码及解释:要编写一个C语言程序,从键盘输入一个正整数n并计算其阶乘(n!),可以通过两种方法实现:递归和循环。首先,我们来看递归的方法:c include \/\/ 递归函数计算阶乘 int factorial(int n) { if (n <= 1)return 1;else return n * factorial(n - 1);} int...
编写程序,从键盘输入一个正整数n,n<=15,求n!并输出
include<stdio.h> int main(){ int n;scanf("%d",&n);int sum=n;while(--n)sum*=n;return !printf("%d\\n",sum);}
用C语言编写:从键盘输入任意一个正整数,求其各位数字立方和
本人也是学C语言的,以下的程序是按照你的要求编写的:#include <stdio.h> \/\/求输入数各位数的立方和 void main(){ int x,sum=0,j;printf("请输入一个正整数:");scanf("%d",&x); \/\/输入一个数 while(x!=0) \/\/判断X是否为零 { j=x%10; \/\/取个位数字 sum+=j*j*...
编写程序,实现从键盘输入一个正整数,输出该正整数的位数。
\/* 写程序用输出一个由用户输入的正整数的位数,例如26的位数为2;2341的位数为4。*\/ include "stdio.h"void main(){ int sum,i=0;printf("please input a sum (sum>=0 && 整数)");scanf("%d",&sum);while(sum!=0){ sum=sum\/10;i++;} printf("sum是%d位数\\n",i);} 正确的 ...
用户输入一个正整数N,分别计算出累加和小于等于N时的最大正整数编写程序...
include <stdio.h> int main() { int N, sum = 0, i = 1;printf("请输入一个正整数N:\\n");scanf("%d", &N);while (sum + i <= N) { sum += i;i++;} printf("累加和小于等于%d时的最大正整数为%d\\n", N, i-1);return 0;} 该程序使用scanf()函数从键盘读取一个正...