编写一个函数计算n!,在主函数中调用该函数求1!+2!+3!+…+10!。 要求:函数要定义在主函数的后面。
用递归函数
#include
#include
int inv(int x);
main()
{
int sum=0,i;
for(i=1;i<11;i++)
{
sum = sum+inv(i)
}
printf("sum=",sum);
}
int inv(x)
{
if(x-1==0) return 1;
else return x=x*inv(x-1)
}
#include int factorial(int n){int res = 1;for (int i = 2; i <= n; i++)res *= i;return res;}int main(){int n;scanf("%d", &n);int res = 0;for (int i = 1; i <= n; i++)res += factorial(i);printf("%d
", res);return 0;}
#include<iostream>
using namespace std;
int factorial(int a);//声明计算阶乘函数
int main()
{
int sum=0,n;
cout<<"请输入n的值"<<endl;
cin>>n;
for(int i=1;i<=n;i++)
{
sum+=factorial(i);//调用函数
}
cout<<"n的阶乘为:"<<sum<<endl;
return 0;
}
int factorial(int a)
{
int result=1;
for(int i=1;i<=a;i++)
result*=i;
return result;
}
输入的n为10时,运行结果如下:
#include<stdio.h>
int Calc(int nResult[],int len,int nNumb);
void main()
{
int nResult[128]={0}; //定义一个长度为512的数组用于保存结果
int len=1 ; //长度定义?
nResult[0]=1; //数组第一个元素赋值为1
for(int i=2;i<=10;i++){ //阶乘计算
len=Calc(nResult,len,i);//递归 由长度len得len
}
for(int i=len-1;i>=0;i--){
printf("%d",nResult[i]);
}
printf("
");
getchar();
return;
}
int Calc(int nResult[],int len,int nNumb)
{
int i,rem=0;
for(i=0;i<len;i++){
rem+=nResult[i]*nNumb;
nResult[i]=rem%10;
rem=rem/10;
}
while(rem>0){
nResult[len]=rem%10;
len++;
rem=rem/10;
}
return len;
}
#include <stdio.h>
void main()
{
double Ni(int n);
double ni= 0.0;
for(int n= 1; n <= 10; n++) ni+= Ni(n);
printf("%lf\n", ni);}
double Ni(int n)
{
double ret= 1.0;
while(n)
{
ret*= n--;
}
// printf("%lf\n", ret);
return ret;
}
#include#includelongxx(longx){if(x=1)return1;elsereturnxx(x-1);}intmain(){longsum=0,i;for(i=1;i<=10;i++)sum+=xx(i);printf("%d",sum);return0;}
1编写求n!的函数f(intn),在主函数中输入两个整数mn,然后调用函数求
以下是题主需要的c程序代码,请自行编译,有什么问题联系我:include <stdio.h> int f(int n) { int result = 1;for (int i = 1; i <= n; i++) { result *= i;} return result;} int main() { int m, n;printf("请输入两个整数m和n:");\/\/空格分隔 scanf("%d %d", &m,...
用C语言编写n!
① 定义变量 sum,并赋初值 1。② i 自增 1。③ 直到 i 超过 n。程序代码如下 include <stdio.h>int main(){int i,n;double sum=1;scanf("%d",&n);for(i=1;i<=n;i++)sum=sum*i;printf("%d!=%lf",n,sum);printf("\\n");return 0;} 调试运行结果 输入 5,对应的阶乘输出...
n!=什么?
连乘,1乘2乘3...一直乘到 n等于 n!。n!≈√(2πn)(n\/e)^n。这就是阶乘的定义。一个正整数的阶乘(factorial)是所有小于及等于该数的正整数的积,并且0的阶乘为1。自然数n的阶乘写作n!。1808年,基斯顿·卡曼引进这个表示法。亦即n!=1×2×3×...×n。阶乘亦可以递归方式定义:0!
C++ 写一个函数计算n!。在主函数输入x,计算sin x的近似值。使用如下的...
这样处理以后应该就一样了。第一个图中的最后一项是>=1e-4的,没有按照题目的要求实现计算。第2个图中,答主kaixingui2012 说得对。因为t还没有赋值就进行判断,其内容是不确定的!刚巧初始时t的值是>1e-4,所以程序运行较大概率地凑巧而已。
如何用C语言编写程序:调用函数,计算 n!\/m!(n-m)!
参考代码:include <stdio.h> double fact(int num)\/\/定义一个求阶乘函数 { double result = 1.0;for (int i = 2; i <= num; i++){ result *= i;} return result;\/\/返回阶乘结果 } int main(){ int m, n;double result;scanf("%d %d", &m, &n);result = fact(n) \/ (...
c语言 编程实现求n!要求用定义求阶乘的函数
1、打开vs2017软件,新建c语言的工程,首先开头引入头文件,然后调用先调用一下求阶乘的函数和空的主函数,最下方定义prime函数用来求阶乘:2、主函数中用scanf函数接受用户输入的的数字,接着将输入的数传入处理阶乘的函数中完成计算,最后输出打印结果。prime函数有一个参数,首先判断是否为正数,然后用...
c++编程题 编写函数实现求n!,主程序要求输入n的值,用函数调用的方式求n...
如果想求更大的,必须为这个阶乘自定义一个数据类型。#include<iostream>using namespace std;int fact(int n);int main(){ int n; cout<<"求n!,请输入n:\\n"; cin>>n; cout<<fact(n)<<endl; return 0;}\/\/下面是使用递归函数求n!int fact(int n){ if(n==1) return(1); else return(fact(...
设计一个过程(函数或子程序):计算n!=1×2×3×…×n.用C语言主调函数过...
longint i,j,carry; \/\/i:1~n的某一阶乘元素;carry:进位 a[0] = 1; \/\/将结果先初始化为1 for(i = 2; i <= n; i++){ \/\/开始阶乘,阶乘元素从2开始依次"登场"\/\/按最基本的乘法运算思想来考虑,将阶乘元素i与临时结果的每位a[j-1]相乘 for( j = 0, carry = 0; ...
求n!可以用1×2×3×……×n用递归法计算n!则可用下列公式表达: n...
计算公式为: n!= n×(n-1)×…×3×2×1,且0!=1 在子函数中只需一个数据x,故设一个参数n 计算结果要返回主函数,故设一个变量result n的阶乘可在一重循环中实现 函数 fac()计算阶乘n! int fac(int n) {int result = 1; if(n1) {result *= n; n- ...
C语言程序题: 1、编写一个求n!的函数fact(n),要求fact函数分别用递归...
ifdef RECURSION long fact(int n){ if(n<1) return 1;return n*fact(n-1);} else long fact(int n){ long t=1;for(int i=2;i<=n;i++)t*=i;return t;} endif main(){ long s=0;for(int i=1;i<=10;i++)s+=fact(i);printf("%ld\\n",s);} 2。include "stdio.h"...
阿袁丙氧: int A(int n){ if(n==1)return 1; else return n*A(n-1); }
邵东县13687365246: 编写一个自定义函数fact:求n!, 在 main函数中调用它来计算m!/(m - k)!,并输出结果. - ?
阿袁丙氧: fact(int n) { if(n==1) { return n; } else { n*=fact(n-1); return n; } } main() { int m,k,s; scanf(%d%d,&m,&k); s=fact(m)/fact((m-k)); printf(%d,s); }
邵东县13687365246: 编写函数实现n!,在主函数中调用该函数,求s=1 1/2! 1/3! ···直到最后一项的值小于0.00001 - ?
阿袁丙氧: #include float f(int n) {int s,i; s=1; for(i=1;i<=n;i++) s=s*i; return s; } main() {float s; int n=1; s=0; while(f(n)<=10000) {s=s+1/f(n); n++; printf("%f\n",s);} }
邵东县13687365246: 编写将一个整数n转换成字符串的函数.在主函数中调用该函数并输出结果,从键盘输入n的值 - ?
阿袁丙氧: 这个都很基础的了,没有用到任何难的东西,你看不懂哪里直接追问我吧 void itos(int n, char* str, int radix) { int i = 0; int m = n; int f = 0; if (n == 0) //如果是0,直接赋值 { str[0] = '0'; str[1] = '\0'; return; } else if (n < 0) { str[0] = '-'; n = -n; f = 1; } while (m) ...
邵东县13687365246: 请教:写一个求n!的函数,在主函数中调用该函数求1!+2!+…10!的值. - ?
阿袁丙氧: float fac(int n) {float f;if(n<0){printf("n<0,dataerror!";}else if(n==0||n==1)f=1;else f=fac(n-1)*n;return(f); } main() {int n;float y;printf("input an integer number:");scanf("%d",&n);y=fac(n);printf("%d!=%10.0f",n,y); }
邵东县13687365246: 编写函数计算y=1!+2!+3!...n! ,n作为参数传递,在主函数调用该函数并输出 - ?
阿袁丙氧: # include int main(void) { int n, sum = 0; scanf("%d", &n); sum = jiecheng(n); printf("sum = %d\n", sum); return 0; } int jiecheng(int n) { int i, t=1, sum=0; for (i=1; i{ t *= i; //i逐渐扩大,t不断变化1*1 1*2 1*2*3 1*2*3*4 …… sum += t; } return sum; }
邵东县13687365246: 编写函数,函数的功能是求n个数的最大值,在主函数中调用该函数实现n个数最大值的计算并输出之. - ?
阿袁丙氧: =|| 童鞋...你是要返回输入的n个数的最大值,还是一个数组的最大值啊... 返回输入n个数最大值的函数: #include<stdio.h> int Max(int n); //最大值函数声明 int main() {int n;scanf("%d",&n); //输入数字的个数.printf("the max is:...
邵东县13687365246: 编写函数,函数的功能是求n个数的最大值,在主函数中调用... - ?
阿袁丙氧: =|| 童鞋...你是要返回输入的n个数的最大值,还是一个数组的最大值啊... 返回输入n个数最大值的函数: #include
邵东县13687365246: 写出计算n!的函数,并在主函数main()中调用该函数,计算0!+3! - 6!+9! - 12!+...+27! - ?
阿袁丙氧: #include <iostream> using namespace std; int main () { double sum=1; double fac(int); int s=1; for(int i=3;i<=27;i+=3) {sum=sum+s*fac(i); s=-s; } cout<<"0!+3!-6!+9!-12!+…+27!="<<sum<<endl; return 0; } //求n!的函数 double fac(int n) { double...
邵东县13687365246: 写一个求N!的函数,在主函数中通过调用此函数,求3!+6!+17! - ?
阿袁丙氧: 17阶乘有15位 超过32位整型范围. 所以 要么用double 存近似值, 要么用long long 64位整型. 以64位整型为例, 如果编译器不支持, 就用double或者数组模拟大数. long long fact(int n) { long long r = 1; while(n>1)r*=n--; return r; } int main() { printf("%lld\n", fact(3)+fact(6)+fact(17)); return 0; }