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

6-10 阶乘计算升级版 (20 分)

#include <stdio.h>

void Print_Factorial ( const int N );

int main()
{
int N;

scanf("%d", &N);
Print_Factorial(N);
return 0;
}

/* 你的代码将被嵌在这里 */

打印N!的值,涉及到大数运算:加法和乘法。

解决思路为模拟手算乘法的过程,用数组存储并运算得到结果。ProjectEuler中有一道类似的题目:题目13:找出100个50位数之和的前十位数字。

阶乘代码如下:

void Print_Factorial ( const int N )
{
if(N<0)
{
printf("Invalid input");
return ;
}
int num[3000]={1};
int up=0;//记录当前进位值
int pos=0;//记录当前最高位所在的下标
for(int i=1;i<=N;i++)
{
for(int j=0;j<=pos;j++)
{
int tem=num[j]*i+up; //更新当前位置上的数
num[j]=tem%10;
up=tem/10;
}
while(up!=0)//位数要增长
{
num[++pos]=up%10;
up/=10;
}

// for(int d=pos;d>=0;d--)
// {
// printf("%d",num[d]);
// }
// printf("\n");
}
// printf("\n");
for(int i=pos;i>=0;i--)
{
printf("%d",num[i]);
}

}

http://www.jsqmd.com/news/30511/

相关文章:

  • 每日收货
  • 【C130x 离在线】Python使用import opuslib 报错解决方案
  • 读《Python神经网络编程(异步图书) 塔里克拉希德》有感
  • 【CI130x 离在线】Python使用import opuslib 报错解决方案
  • 002 vue3-admin项目的目录及文件说明之.gitignore文件
  • 2025.11.03 正睿
  • 使用QSPI驱动PM004MNIA
  • c++虚函数与纯虚函数解析
  • 杂谈:关于java帝国的一些内容
  • 11月3日日记
  • 洛谷 P3615
  • 蒟蒻的S游记碎碎念
  • 简单五子棋对战(AI生成)
  • 扬贺扬国产DDR4、国产NAND存储、国产EMMC存储
  • 概率论练习
  • 【python刷题记录】移动零-双指针-简单
  • [linux]记账工具-监控用户活动
  • 002 vue3-admin项目的目录及文件说明之public目录
  • Day11CSS特性
  • [GDB] GDB-Dashboard: GDB可视化工具
  • kettle调度系统-kettle spoon方式调度,强大兼容性,支持各种版本kettle
  • Django 项目开发整体步骤(0 开始)
  • [GDB] cgdb: GDB 可视化工具
  • Maya 2025软件超详细下载安装教程(附安装包和激活步骤)
  • AI元人文构想:基于价值原语和三值纠缠的权衡
  • 一款基于 .NET WinForm 开源、轻量且功能强大的节点编辑器,采用纯 GDI+ 绘制无任何依赖库仅仅100+Kb!
  • 10-31 题
  • Windows install MiniConda3
  • 109.Redis的geospatial和XXL-JOB 分布式任务调度平台整理
  • 我的神奇题目