当前位置: 首页 > news >正文

大幂计算和大阶乘计算【C语言】

大幂计算:

#include<stdio.h>
long long int c[1000000]={0};
int main()
{
	long long a,b,x=1;
	c[0]=1;
	printf("请输入底数:");
	scanf("%lld",&a);
	printf("请输入指数:");
	scanf("%lld",&b);
	for(int i=0;i<b;i++)
	{
		if(x>99900){
			printf("太大了!无法计算!");
			return 0;
		}
		for(int j=0;j<x;j++)
		{
			c[j]*=a;
		}
		for(int j=0;j<x;j++)
		{
			if(c[j]>9){
				for(int k=j;k<x;k++)
				{
					if(c[k]<9)break;
					if(k==x-1)x++;
					c[k+1]+=c[k]/10;
					c[k]%=10;
				}
			}
		}
	}
	printf("%lld^%lld=",a,b);
	for(int i=x-1;i>=0;i--)
	{
		if(i==x-1&&c[i]==0){
			x--;
			continue;
		}
		printf("%lld",c[i]);
	}
	printf("\n结果共计%lld位数!",x);
	return 0;
}

大阶乘计算 :

#include<stdio.h>
long long int c[1000000];
int main()
{
	long long a,x=1;
	c[0]=1;
	printf("请输入阶数:");
	scanf("%lld",&a);
	for(int i=2;i<=a;i++)
	{
		if(x>999000){
		printf("太大了!无法计算!");
		return 0;
		}
		for(int j=0;j<x;j++)
		{
			c[j]*=i;
		}
		for(int j=0;j<x;j++)
		{
			if(c[j]>9){
				for(int k=j;k<x;k++)
				{
					if(c[k]<9)break;
					if(k==x-1)x++;
					c[k+1]+=c[k]/10;
					c[k]%=10;
				}
			}
		}
	}
	printf("%lld!=",a);
	for(int i=x-1;i>=0;i--)
	{
		if(i==x-1&&c[i]==0){
			x--;
			continue;
		}
		printf("%lld",c[i]);
	}
	printf("\n结果共计%lld位数!",x);
	return 0;
}

应用的题:

P1009 [NOIP 1998 普及组] 阶乘之和https://www.luogu.com.cn/problem/P1009题解代码

#include<stdio.h>
int as(int a,int c[]){
	int x=1;
	c[0]=1;
	for(int i=2;i<=a;i++)
	{
		for(int j=0;j<x;j++)
		{
			c[j]*=i;
		}
		for(int j=0;j<x;j++)
		{
			if(c[j]>9){
				for(int k=j;k<x;k++)
				{
					if(c[k]<9)break;
					if(k==x-1)x++;
					c[k+1]+=c[k]/10;
					c[k]%=10;
				}
			}
		}
	}
	return x;
}
int main() {
	int a,exp=0;
	int data[100]={0};
	scanf("%d",&a);
	for(int i=1;i<=a;i++){
		int temp[100]={0},b;
		b=as(i,temp);
		if(b>exp)exp=b;
		for(int j=0;j<exp;j++){
			data[j]+=temp[j];
			if(data[j]>9){
				data[j+1]++;
				data[j]%=10;
				if(j==exp-1)exp++;
			}
		}
	}
	for(int i=exp-1;i>=0;i--){
		printf("%d",data[i]);
	}
	return 0;
}

相关文章:

  • idea 2023.3.7常用插件
  • Redis基本数据结构
  • 使用EasyExcel和多线程实现高效数据导出
  • 机器学习_11 线性回归知识点总结
  • Linux top 命令
  • 相机开发调中广角和焦距有什么不一样
  • IC验证典型测试向量
  • FreeRTOS第8篇:同步的“信号灯”——信号量与互斥锁
  • cURL请求与Javascript请求转换工具
  • Java版企业电子招标采购系统源业码Spring Cloud + Spring Boot +二次开发+ MybatisPlus + Redis
  • mysql多主集群 galera cluster for mysql 8安装配置启动重启集群
  • [OD E 100] 服务器广播需要广播的服务器数量
  • Win7编译GPU版llama.cpp部署deepseek-r1等大模型记录
  • 浅谈推理大模型中使用核心的算法
  • 青少年编程与数学 02-009 Django 5 Web 编程 19课题、RESTful API开发
  • DeepSeek 部署中的常见问题及解决方案:Mac 场景实践指南
  • uniapp 支付宝小程序自定义导航栏
  • OSM路网简化文档+实操视频讲解(道路中心线提取、拓扑检查,学术论文处理方式)5
  • LLMs Ollama
  • 【动态规划】详解 0-1背包问题
  • 贵州黔西游船倾覆事故70名落水人员在院救治,均为轻伤
  • 铁路上海站迎五一返程客流最高峰,今日预计到达75.9万人次
  • 外交部亚洲司司长刘劲松就日本民用飞机侵闯我钓鱼岛领空向日方提出严正交涉
  • 福建两名厅级干部履新,张文胜已任省委省直机关工委副书记
  • 局势紧张之际,伊朗外长下周访问巴基斯坦和印度
  • 港股5月迎开门红,恒生科指涨3%,欧股开盘全线上扬