问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

C语言高精度阶乘:n!=1*2*3*4*......*(n-...22

发布网友 发布时间:2023-10-30 07:35

我来回答

5个回答

热心网友 时间:2024-03-23 22:50

哥给你一个好的,用数组模拟乘法
俺原创的,呵呵~~~
#include <stdio.h>
void main()
{
int a[1000]={1},b[4]={0};
int k,i,j;
scanf("%d",&k);
void multi(int a[],int b[]); // 用于计算乘法的函数,计算a*b 并把结果放在a当中
void seperate(int n, int b[]); //分离一个数的没一位,并放在b中!
for (i=1;i<=k;i++)
{

seperate(i,b);
multi(a,b);
}
for (j=999;a[j]==0;j--);
//反序输出
for (i=j;i>=0;i--) //
printf("%d",a[i]); //
} //主函数结束,下面是函数部分

void seperate(int n,int b[]) //注意最后一位是放在b[0]中的!
{
int i;
for (i=0;n>0;i++)
{
b[i]=n%10;
n/=10;
}
}

void multi(int a[],int b[]) //核心程序,非常难调啊!!!!!
{
int tp[1000]={0};
int i,j,t,p,m,n;
for (m=3;b[m]==0;m--);
for (n=999;a[n]==0;n--);
for (j=0;j<=m;j++)
{
t=0;
for ( i=0;i<n+2;i++)
{
p=b[j]*a[i]+t+tp[i+j];
tp[i+j]=p%10;
t=p/10;
}
}
for (j=999;tp[j]==0;j--);
for (i=0;i<=j;i++)
a[i]=tp[i];

}

热心网友 时间:2024-03-23 22:54

哥给你一个好的,用数组模拟乘法
俺原创的,呵呵~~~
#include
<stdio.h>
void
main()
{
int
a[1000]={1},b[4]={0};
int
k,i,j;
scanf("%d",&k);
void
multi(int
a[],int
b[]);
//
用于计算乘法的函数,计算a*b
并把结果放在a当中
void
seperate(int
n,
int
b[]);
//分离一个数的没一位,并放在b中!
for
(i=1;i<=k;i++)
{
seperate(i,b);
multi(a,b);
}
for
(j=999;a[j]==0;j--);
//反序输出
for
(i=j;i>=0;i--)
//
printf("%d",a[i]);
//
}
//主函数结束,下面是函数部分
void
seperate(int
n,int
b[])
//注意最后一位是放在b[0]中的!
{
int
i;
for
(i=0;n>0;i++)
{
b[i]=n%10;
n/=10;
}
}
void
multi(int
a[],int
b[])
//核心程序,非常难调啊!!!!!
{
int
tp[1000]={0};
int
i,j,t,p,m,n;
for
(m=3;b[m]==0;m--);
for
(n=999;a[n]==0;n--);
for
(j=0;j<=m;j++)
{
t=0;
for
(
i=0;i<n+2;i++)
{
p=b[j]*a[i]+t+tp[i+j];
tp[i+j]=p%10;
t=p/10;
}
}
for
(j=999;tp[j]==0;j--);
for
(i=0;i<=j;i++)
a[i]=tp[i];
}

热心网友 时间:2024-03-23 22:48

int Foo(int n)
{
if(n==1)
return 1;
return Foo(n-1)*n
}

热心网友 时间:2024-03-23 22:49

高精度也是有程度差别的 , 就这个问题而言, 到底是要高精度×int还是高精度×高精度编程难度还是差挺多的

热心网友 时间:2024-03-23 22:49

//以计算1000!为例:
#include<stdio.h>
#define N 1000 //要计算的N
long s[N]={1,1},n=N,t=2,a=1,b=0;
int main()
{
for(;a<=*s||(++t<=n?(b=0,a=1):0);(*s==a++&&b)?(*s)++:0)
s[a]=(b+=s[a]*t)%10000,b/=10000;
for(printf("%d",s[*s]);--*s>0;)printf("%04d",s[*s]);
return 0;
}
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
遇到碰瓷怎么办 导致碰瓷者伤亡用负法律责 最新电子防盗装置 3个LED的小夜灯电路 买不到小功率3伏变压器,如何降压做个3伏70毫安电源 小夜灯按钮坏了怎么拆 哪里有各种定做手提袋 如图,我这个配置玩逆战为何会卡?pvp200左右,pve75左右,ping二三十,网... 女孩问你是的时候怎么回答 自习课 同学都睡着了 男同桌问我让我跟他比赛 比谁撒尿尿得远 问他... 想把一个女同学上了,又不想负责任,毕竟她对我没意思,我对她也没意思... 有一个晚上,女同学叫我一起玩,玩着玩着到了半夜,回自己的宿舍太远就... C语言中,求一个数的n次方的精确值,小数点后有很多位,应该用...1 一只耳朵上有两个耳洞,另外一只耳朵上有一个。怎么带耳钉好看?怕麻烦... C语言求cos精确值 泰勒公式4 史记中为什么敢于批评刘邦而称赞项羽? 永靖县鼎峰餐饮有限公司怎么样? 郭沫若简介急需50字啊919 作者郭沫若的简介482 郭沫若是个什么样的人305 郭沫若是怎么死亡的76 郭沫若简介2709 郭沫若的“————————————————”告诉我们对待科学...4 联想p310 工作站带的raid是什么型号 联想最新P310工作站,BISO里硬盘只有AHCI和RAID... 海战中军舰的法律地位是什么?求解答 谢谢! ...根据前世的记忆,都说是做梦知道的。是啥小说来着? 我家家谱被老一辈的弄掉了!我爸是应字辈的!我都不知道我们是什么字 冬天了,我的小叶紫檀盆栽在阳台上养,为什么叶子上出现黏黏的透明液体... iphone5屏幕出现彩条后自动重启 功放里四个最大的电容是干什么用的15 这是一台功放,电容旁边那个透明小盒子是什么东西? ...由罗伯特·雷德福主演的间谍游戏高清视频在线观看资源吗 前男友盗了我的,扣扣号,看了我的全部聊天记录,还用我的... 请问功放板上的电容能不能加大28 iphone怎么拍流光6 要一篇医学文章,2000字左右6 ...电脑高手帮下忙,主要用来玩魔兽争霸尤其澄海3C地图,下个月就要和... 我是个学护理专业的,现急需一篇求职面试时的自我介绍,要求不卑... 从北京发中通快递到四川省凉山彝族自治州布拖县补洛乡大约几天到货 月亮一路面满天的星星惊散了运用了什么辞格 因为△u=qv,u是状态函数,所以qv也是状态函数,这种说法...1 西游记21到50读后感100字8 因为△u=qv,u是状态函数,所以qv也是状态函数,这种说法...1 △H和△U都是状态函数错在哪8 S,G,H等哪些是状态函数?如何判断? 化学状态函数求教1 风中花雨楼歌曲原唱 是不是每家人都有家谱啊? ...一直出汗,突然头脑发黑,整个人要倒了,凌晨三点又 Amd2200核显玩lol会卡吗1 暖气平衡阀如何调节