首页 > 其他分享 >单身狗进化(高精度篇)

单身狗进化(高精度篇)

时间:2024-09-07 22:54:07浏览次数:7  
标签:25000 进化 高精度 int 弯通 单身 阶乘 位数

算法与数据结构实验题 1.10 单身狗进化

★实验任务

这一天晚上,弯通又做梦了,并且梦到了一个帅气的男孩纸!这个男孩给了弯通一个数字 n。男孩离开前告诉弯通,n!(n 的阶乘)的位数就是距离弯通脱单的天数。矜(ji)持(ke)的弯通想知道自己还有多久能脱单,快写个程序帮助他!

★数据输入

输入第一行为一个正整数 n(1<=n<=25000)。

★数据输出

输出 n!的位数。

前两天发了一道关于求阶乘结果的位数的博文,后来发现那个方法有局限性,只能计算比较小的数的阶乘,今天 带来的是可以计算更大位数的阶乘计算甚至可以求出25000的阶乘

话不多说,上代码

#include<iostream>
using namespace std; 
const int maxN=25000;
int main()
{
	int n;//输入计算次数 
	cin>>n;
	int s[maxN]={0};//设置的最大数据是25000,这个可以自定 
	s[0]=1;//要把第一位设为1,否则算出来都为0 
	for(int i=2;i<=n;i++)
	{
		int up=0;//up用来存进位多少 
		for(int j=0;j<maxN;j++)
		{
			int tmp=s[j]*i+up;
			s[j]=tmp%10;//s[j]代表了个位数 
			up=tmp/10;//up是进位数 
		}
	}
	int heigh;
	for(int i=25000-1;i>=0;i--)
	{
		if(s[i]!=0)
		{
			heigh=i;
			break;//输出时先找到最高的非0位,记录下它就是等会儿输出时遍历数组的下标 
		}
	} 
	int cnt=0;
	for(int j=heigh;j>=0;j--)//从刚刚记录的最高位逆序计算结果的位数 
	{
		cnt++;
	}
	cout<<cnt;
	
	return 0;
}

这个方法是用了高精度算法,之后会再写一篇文章来详解高精度算法

标签:25000,进化,高精度,int,弯通,单身,阶乘,位数
From: https://blog.csdn.net/Hannes_zhang/article/details/141831357

相关文章

  • 1.10 单身狗进化
    这一天晚上,弯通又做梦了,并且梦到了一个帅气的男孩纸!这个男孩给了弯通一个数字n。男孩离开前告诉弯通,n!(n的阶乘)的位数就是距离弯通脱单的天数。矜(ji)持(ke)的弯通想知道自己还有多久能脱单,快写个程序帮助他!这题转换为数学问题也就是求n的阶乘然后求结果的位数以下是我写的代码......
  • Python中差分进化differential_evolution的调用及参数说明
    在场景应用中,要求我们的函数计算结果尽可能的逼近实际测量结果,可转化计算结果与测量结果的残差,通过最小化残差,便可求出最优的结果。但使用最小二乘等方法来计算时,常常会使迭代的结果显然局部最优点而导致结算错误。差分进化原理差分进化(DifferentialEvolution,DE)是一种基......
  • PCB线路板高精度印刷应用
    在当代电子设备的构造中,印刷电路板(PCB)扮演着至关重要的角色,作为承载并集成各类电子元器件的信息平台。PCB板在电子领域内享有广泛的应用范围,其质量优劣直接关联到最终产品的性能表现。随着电子科技的不断进步与电子制造业的蓬勃发展,贴片元件的尺寸日趋微型化,安装密度显著提升,这......
  • 人脸静态活体检测(高精度版)
    人脸静态活体检测(高精度版)API对接说明本文将介绍人脸静态活体检测(高精度版)API对接说明,它可用于对用户上传的静态图片进行防翻拍活体检测,以判断是否是翻拍图片。接下来介绍下人脸静态活体检测(高精度版)API的对接说明。注册试用链接注册试用链接申请流程要使用API......
  • LZC3106A国产高性能、高精度谐振模式双端控制器,专用LLC半桥谐振电路的控制应用
    综合描述LZC3106是一款高性能、高精度谐振模式双端控制器,专用于LLC半桥谐振电路的控制应用。它提供50%的互补占空比:高压侧开关和低压侧开关在完全相同的时间内以180°反相方式导通/关断。控制器通过调节系统工作频率来实现对输出电压的调制和稳定.LZC3106......
  • C++高精度乘法
    #include<iostream>#include<string>#include<cstring>usingnamespacestd;intmain(){stringstr1,str2;cin>>str1>>str2; //确定字符串长度 intlen1=str1.length(); intlen2=str2.length(); //确认积......
  • 人脸静态活体检测(高精度版) API 对接说明
    人脸静态活体检测(高精度版)API对接说明本文将介绍人脸静态活体检测(高精度版)API对接说明,它可用于对用户上传的静态图片进行防翻拍活体检测,以判断是否是翻拍图片。接下来介绍下人脸静态活体检测(高精度版)API的对接说明。申请流程要使用API,需要先到人脸静态活体检测(......
  • 高精度减法
    #include<iostream>#include<string>#include<cstring>usingnamespacestd;/*比较两个字符串的大小,并确保第一个字符串大于等于第二个字符串入参:两个字符串的引用如果第二个字符串比第一个字符串小,两个字符串进行对换*/voidcmpAndSwap(string&str1,string&str......
  • 高精度加法
    #include<iostream>#include<string>#include<cstring>usingnamespacestd;/*按顺序打印数组元素flag为true时正序打印flag为false时倒序打印*/template<typenameT>voidshow(Tarr[],intlen,boolflag=true){ if(flag) //正序打印 for(inti=0;i<......
  • 活动火热报名中|搜索进化论:基于大模型的企业级AI搜索
    活动介绍随着人工智能技术的飞速发展,AI搜索正在成为企业提升信息处理效能的重要利器。搜索开发工作台,是阿里云为企业及开发者打造的先进AI搜索平台,具备丰富的组件化服务与强大的模型能力。时间:2024/9/1313:30-17:30地点:阿里巴巴北京朝阳科技园C区,C-C2-B01圆月山庄本次活动中,我们将......