c语言n的阶乘 longfact,如何定义函式fact(n) 计算n的阶乘:n!=1*2*……*n,函式返回值型别是double?...
如何定义函式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?...相关推荐
- php怎么求阶乘_如何实现一个PHP类来计算整数的阶乘?(代码详解)
本篇文章主要给大家介绍实现一个PHP类来计算整数的阶乘. 推荐参考学习:<PHP教程> 首先大家简单了解一下什么是阶乘? 一个正整数的阶乘(factorial)是所有小于及等于该数的正整数 ...
- 01_11_Java语言入门||02_面向对象与常用类||day11_final、权限、内部类、成员变量类型和方法的参数及返回值特例
第一章 final 1.1 final关键字和概念和四种用法 final关键字代表最终,不可改变的 常见四种用法 可以用来修饰一个类 可以用来修饰一个方法 可以用来修饰一个局部变量 可以用来修饰一个成 ...
- 【C 语言】C 项目开发代码规范 ( 形参合法性判断 | 函数返回值局部变量 | 函数中不用全局变量 | 函数中使用局部变量接收形参 | 函数返回值 | 形参作返回值 | 形参返回值处理 )
文章目录 一.C 项目开发代码规范 一.C 项目开发代码规范 上一篇博客 [C 语言]字符串模型 ( 键值对模型 ) 中 , 完成了字符串的 键值对 查找功能 , 代码不太规范 ; C 项目开发代码规 ...
- c语言返回值作用,c语言的返回值是什么意思啊?
c语言的返回值是什么意思啊? 关注:204 答案:6 手机版 解决时间 2021-01-17 03:28 提问者怪咖 2021-01-16 11:08 例如下题 求三个整型参数的最大值函数 int ...
- python函数的用法详解(作用、定义、调用、函数参数、函数返回值、函数说明文档、函数嵌套使用)
1. 函数的作⽤ 函数就是将⼀段具有独⽴功能的代码块整合到⼀个整体并命名,在需要的位置调⽤这个名称即可完成对应的需求. 函数在开发过程中,可以更⾼效的实现代码重⽤. 2. 函数的使⽤步骤 2.1 定义 ...
- 【C 语言】字符串模型 ( 字符串翻转模型 | 抽象成业务函数 | 形参返回值 | 函数返回值 | 函数形参处理 | 形参指针判空 )
文章目录 一.字符串翻转模型 业务函数 二.完整代码示例 一.字符串翻转模型 业务函数 将上一篇博客 [C 语言]字符串模型 ( 字符串翻转模型 ) 的代码 , 主要业务逻辑 , 抽象成函数 ; 字符 ...
- C语言学习笔记---结构体作为函数参数和返回值
结构体不仅可以作为函数的参数传递,也可以作为函数的返回值.现在就分别来看一下这两种情况. 结构体作为参数 struct score {int chinese;int math;int englis ...
- 017循环的方式定义数组、018循环for each、019方法练习、020实参和形参、021方法的返回值
017循环的方式定义数组 using System;namespace _017循环的方式定义数组 {class Program{static void Main(string[] args){// ...
- 计算1~10阶乘然后累加
# -*- coding:cp936 -*- #作者 zyc #2015/11/9 #计算1~10阶乘然后累加 #2015/11/11完成 print "计算1~10阶乘然后累加" ...
- c++结构体定义和使用_【C语言更新】结构体的定义及使用
文/Edward首先先思考一个问题,假设某一天你去了一家策划公司,接到了一个策划需求,比如为新上市的某款手机写一个市场推广的文案,并且在电脑上面打印出来.那么在写这个文案的时候,你肯定是会需要着重地去 ...
最新文章
- 网站优化新方式亟需创新
- 比尔盖茨跌落第二!世界首富换人了
- 在.Net framework下遍历XML文挡树的两种算法
- C++中局部变量可以和全局变量重名吗?
- EntityFramework用法探索(三)CodeFirst流畅API
- Java开发笔记(二十三)数组工具Arrays
- python字典副本_如何复制字典并仅在Python中编辑副本?
- 程序员出差是去干什么_让我来告诉你,35岁以上的人都在干什么!
- mongodb更新操作符$rename
- 总裁徐雷“接管”京东 但拍板的仍是刘强东
- java hashmap
- OnScrollListener
- CS229学习笔记(3)逻辑回归(Logistic Regression)
- MOSS 2007 Search系列
- golang生成随机数
- Inception(盗梦空间)及代码实现
- 剑与家园服务器维护,《剑与家园》杀鸡取卵式运营 如何拯救短命的区服?
- Java学习——类和对象(上)
- 德语语法笔记——动词的变位
- 如何将mp4转换成gif?教你一招实现视频转gif高清转换