如何定义函式fact(n) 计算n的阶乘:n!=1*2*……*n,函式返回值型别是double?以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

2. 试题 (1) 定义函式fact(n) 计算n的阶乘:n!=1*2*……*n,函式返回值型别是double。

double?位数太少,来个狠的,要不要!最大可计算(10^9 -1)! 计算10000的阶乘只要0.5秒!(更正一下,计算10000!时,b资料型别可以设定为long,此时运算为0.5秒,设定为long long后耗时增加,也可能CPU速度快不要0.5秒)

雨中飞燕之作改写

#include

#include

#include

#include

long t=2,a,m;

long long b;

main()

{

/ prepare /

int num = 0;

while(1){

printf("Input a natural number that you want to get its factorial.\n");

scanf("%d",&num);

getchar();

if(num <0){

printf("Your Input is illegal!\n");

}

else{

break;

}

}

int digit = 1;

int n = 10;

int i = num;

while(i /= 10){

digit++;

n *= 10;

}也可以固定n=1000000000(最大),实际测试表明n越大计算速度越快。

char output[8];

sprintf(output,"%%0%dld",digit);

/ ready

按sizeof(long)==4,sizeof(long long)==8算,

最大可计算(10^9 -1)! 要求记忆体够大哦^_^

long *s = (long *) malloc(sizeof(long)*num);

if(NULL == s){

perror("malloc");

return -1;

}

memset(s,0,sizeof(long)*num);

s[0] = 1; long s[num]={1};

double start,finish;

start = clock();

原语句简单化

for(t=2;t<=num;t++){

for(a=0;a<=m;a++){

s[a]=(b+=s[a]*t)%n,b/=n;

if( (m==a) && b)m++;

}

}

for(printf("%d!=%ld",num,s[m]);m--;)printf(output,s[m]);若固定n=1000000000则改为printf("%09ld",s[m]);

printf("\n");

finish = clock();

printf("Spended %f seconds to calculate.\n",(finish-start)/CLOCKS_PER_SEC);

free(s);

#if 0

FILE *fp;输出到档案,也要求磁碟空间够大^_^

if((fp = fopen("/example/save","w+"))==NULL){

printf("open save file error\n");

}

else{

for(fprintf(fp,"%ld",s[m]);m--;)fprintf(fp,output,s[m]);

}

free(s);

#endif

return 0;

}

/*功能独立出来

long fact(long num,long n,long *s)

{

long t,a;

long m = 0;

long long b = 0;

for(t=2;t<=num;t++){

for(a=0;a<=m;a++){

s[a]=(b+=s[a]*t)%n,b/=n;

if( (m==a) && b)m++;

}

}

return m;

}

*/

/*

#include 雨中飞燕之作

#define N 1000 要计算的N

long s[N]={1},n=10000,t=2,a,b,m;main(){

for(;a<=m||++t<=N&&(a=b=0,1);m==a++&&b&&m++)

s[a]=(b+=s[a]*t)%n,b/=n;

for(printf("%d",s[m]);m--;)printf("%04d",s[m]);}

*/

定义函式f(n)计算n+(n+1)+(n+2)+……+(2n-1),函式返回值型别是double 。

#include "stdio.h"

double f(int n)

{

int i;

double sum=0;

for(i=1;i<=n;i++)

sum=sum+n;

n++;

return sum;

}

main()

{int i,n;

scanf("%d",&n);

printf("%lf",f(n));

}

f(n)=(3n-1)(n)/2=3n²/2-n/2

定义函式f(n)计算n+(n+1)+……+(2n+1)函式返回值型别double

# include "stdio.h"

double f (int)

{ if( n > 0 );

double m= 0.0;

for(int i = 0; i <= n+1; ++i)

{m+= (n+i);}

return m;

}

void main ()

{ double s;

s=f(n);

printf("%f",s);

}

编写函式f,计算n的阶乘并返回,函式返回值型别为double.

void main()

{

double cal(double a,int b); 这两行提到main函式外去

double fact(int c);

如下

double cal(double a,int b);

double fact(int c);

void main()

{

scanf("%lf%d",&x,&n);因为是double的,所以用lf

double i,j=0;

int k; double是没有++的,只有char,int,long才有

for(k=0;k<=b;k++)

定义函式f(n)计算n+(n+1)+.(2n+1),函式返回值型别是double。求解程式编写

public class Test {

public static void main(String[] args) {

double n=10;

double result=fmethod(n);

System.out.println(result);

}

public static double fmethod(double n) {

double r=0;

for (double i = n; i < =(2*n+1); i++) {

r+=i;

}

return r;

}

}

定义函式total(n)计算1+2+.+n,定义fact(n)计算n!(n!=1*2*.*n),函式total的型别为int,函式fact的返回值类

public int total(int n){

int result = 0;

for(int i=1;i<=n;i++){

result +=i;

}

return result;

}

public int fact(int n){

int result = 1;

for(int i=1;i<=n;i++){

result *=i;

}

return result;

}

定义函式fun(x)计算x^3 2.0*x^2-3.9x+8,函式返回值型别为double

不知道你是两个表示式还是中间落了一个运算子,如果你的表示式是如下:

x^3 + 2.0*x^2-3.9x+8

那么java可以这样实现:

public double fun(double x){ double result = Math.pow(x, 3) + 2.0 * Math.pow(x, 2) - 3.9 * x + 8; return result; }

分页:

1

23

c语言n的阶乘 longfact,如何定义函式fact(n) 计算n的阶乘:n!=1*2*……*n,函式返回值型别是double?...相关推荐

  1. php怎么求阶乘_如何实现一个PHP类来计算整数的阶乘?(代码详解)

    本篇文章主要给大家介绍实现一个PHP类来计算整数的阶乘. 推荐参考学习:<PHP教程> 首先大家简单了解一下什么是阶乘? 一个正整数的阶乘(factorial)是所有小于及等于该数的正整数 ...

  2. 01_11_Java语言入门||02_面向对象与常用类||day11_final、权限、内部类、成员变量类型和方法的参数及返回值特例

    第一章 final 1.1 final关键字和概念和四种用法 final关键字代表最终,不可改变的 常见四种用法 可以用来修饰一个类 可以用来修饰一个方法 可以用来修饰一个局部变量 可以用来修饰一个成 ...

  3. 【C 语言】C 项目开发代码规范 ( 形参合法性判断 | 函数返回值局部变量 | 函数中不用全局变量 | 函数中使用局部变量接收形参 | 函数返回值 | 形参作返回值 | 形参返回值处理 )

    文章目录 一.C 项目开发代码规范 一.C 项目开发代码规范 上一篇博客 [C 语言]字符串模型 ( 键值对模型 ) 中 , 完成了字符串的 键值对 查找功能 , 代码不太规范 ; C 项目开发代码规 ...

  4. c语言返回值作用,c语言的返回值是什么意思啊?

    c语言的返回值是什么意思啊? 关注:204  答案:6  手机版 解决时间 2021-01-17 03:28 提问者怪咖 2021-01-16 11:08 例如下题 求三个整型参数的最大值函数 int ...

  5. python函数的用法详解(作用、定义、调用、函数参数、函数返回值、函数说明文档、函数嵌套使用)

    1. 函数的作⽤ 函数就是将⼀段具有独⽴功能的代码块整合到⼀个整体并命名,在需要的位置调⽤这个名称即可完成对应的需求. 函数在开发过程中,可以更⾼效的实现代码重⽤. 2. 函数的使⽤步骤 2.1 定义 ...

  6. 【C 语言】字符串模型 ( 字符串翻转模型 | 抽象成业务函数 | 形参返回值 | 函数返回值 | 函数形参处理 | 形参指针判空 )

    文章目录 一.字符串翻转模型 业务函数 二.完整代码示例 一.字符串翻转模型 业务函数 将上一篇博客 [C 语言]字符串模型 ( 字符串翻转模型 ) 的代码 , 主要业务逻辑 , 抽象成函数 ; 字符 ...

  7. C语言学习笔记---结构体作为函数参数和返回值

      结构体不仅可以作为函数的参数传递,也可以作为函数的返回值.现在就分别来看一下这两种情况. 结构体作为参数 struct score {int chinese;int math;int englis ...

  8. 017循环的方式定义数组、018循环for each、019方法练习、020实参和形参、021方法的返回值

    017循环的方式定义数组 using System;namespace _017循环的方式定义数组 {class Program{static void Main(string[] args){// ...

  9. 计算1~10阶乘然后累加

    # -*- coding:cp936 -*- #作者 zyc #2015/11/9 #计算1~10阶乘然后累加 #2015/11/11完成 print "计算1~10阶乘然后累加" ...

  10. c++结构体定义和使用_【C语言更新】结构体的定义及使用

    文/Edward首先先思考一个问题,假设某一天你去了一家策划公司,接到了一个策划需求,比如为新上市的某款手机写一个市场推广的文案,并且在电脑上面打印出来.那么在写这个文案的时候,你肯定是会需要着重地去 ...

最新文章

  1. 网站优化新方式亟需创新
  2. 比尔盖茨跌落第二!世界首富换人了
  3. 在.Net framework下遍历XML文挡树的两种算法
  4. C++中局部变量可以和全局变量重名吗?
  5. EntityFramework用法探索(三)CodeFirst流畅API
  6. Java开发笔记(二十三)数组工具Arrays
  7. python字典副本_如何复制字典并仅在Python中编辑副本?
  8. 程序员出差是去干什么_让我来告诉你,35岁以上的人都在干什么!
  9. mongodb更新操作符$rename
  10. 总裁徐雷“接管”京东 但拍板的仍是刘强东
  11. java hashmap
  12. OnScrollListener
  13. CS229学习笔记(3)逻辑回归(Logistic Regression)
  14. MOSS 2007 Search系列
  15. golang生成随机数
  16. Inception(盗梦空间)及代码实现
  17. 剑与家园服务器维护,《剑与家园》杀鸡取卵式运营 如何拯救短命的区服?
  18. Java学习——类和对象(上)
  19. 德语语法笔记——动词的变位
  20. 如何将mp4转换成gif?教你一招实现视频转gif高清转换

热门文章

  1. 搜狗云输入法,实现原理.
  2. jave wed 2
  3. linux用户目录互信,linux 互信不生效
  4. 卡内基梅隆大学计算机科学博士,美国卡内基梅隆大学博士需要几年
  5. QT 使用QModbus类实现modbus TCP踩过的坑
  6. excel拆分单元格内容_Excel办公软件教程
  7. AutoJs学习-实现悬浮网络监视器
  8. 百度相关搜索是怎么出现的如何利用
  9. 易经占卜的演变与人工取名
  10. PHP的exec()函数用法详解