信息学奥赛一本通(1173:阶乘和)
1173:阶乘和
时间限制: 1000 ms 内存限制: 65536 KB
提交数: 9584 通过数: 4868
【题目描述】
用高精度计算出S=1!+2!+3!+…+n!(n≤50)S=1!+2!+3!+…+n!(n≤50),其中“!”表示阶乘,例如:5!=5×4×3×2×15!=5×4×3×2×1。
输入正整数n,输出计算结果S。
【输入】
一个正整数n。
【输出】
计算结果S。
【输入样例】
5
【输出样例】
153
【分析】
定义三个函数,分别是multi函数,用于大数乘法;add函数,用于大数加法;reverse函数,用于字符串逆序输出。
【参考代码】
#include <stdio.h>
#include <string.h>
#define N 210
char f[N],s[N];
void multi(char *str,int k)
{
int i,len,v=0,x=0; //x进位
len=strlen(str);
for(i=0;i<len;i++)
{
v=(str[i]-'0')*k+x;
x=v/10;
str[i]=v%10+'0';
}
while(x>0)
{
str[len]=x%10+'0';
len++;
x/=10;
}
}
void add(char *dest,char *src)
{
int i,lend,lens,lenr,vd,vs,vr,x=0;
lend=strlen(dest);
lens=strlen(src);
lenr = lend > lens ? lend : lens;
for(i=0;i<lenr;i++)
{
vd = i<lend ? dest[i]-'0' : 0;
vs = i<lens ? src[i]-'0' : 0;
vr=vd+vs+x;
x=vr/10;
dest[i]=vr%10+'0';
}
if(x!=0)
dest[lenr]=x+'0';
}
void reverse(char *str)
{
int i,len=strlen(str);
char tmp;
for(i=0;i<len/2;i++)
{
tmp=str[i];
str[i]=str[len-1-i];
str[len-1-i]=tmp;
}
}
int main()
{
int i,n;
scanf("%d",&n);
f[0]='1';
for(i=1; i<=n; i++)
{
multi(f,i);
add(s,f);
}
reverse(s);
puts(s);
return 0;
}
http://ybt.ssoier.cn:8088/problem_show.php?pid=1173
信息学奥赛一本通(1173:阶乘和)相关推荐
- 信息学奥赛一本通 1173:阶乘和 | OpenJudge NOI 1.6 15 | 洛谷 P1009 [NOIP1998 普及组] 阶乘之和
[题目链接] ybt 1173:阶乘和 注:一本通上这题,应该把n≤50n\le50n≤50当做n≤100n\le100n≤100来看 OpenJudge NOI 1.6 15:阶乘和 洛谷 P100 ...
- 信息学奥赛一本通(基础算法与数据结构-题解汇总目录)
信息学奥赛一本通(C++版)在线评测系统 基础(二)基础算法 更新中...... 第一章高精度计算 1307[例1.3]高精度乘法 1308[例1.5]高精除 1309[例1.6]回文数(Noip ...
- 信息学奥赛一本通在线提交地址
信息学奥赛一本通 1 C++语言入门 1.1 综合 1.1.1 P1458 地球人口承载力估计 正确: 770 提交: 1794 比率: 42.92 % 1.1.2 P1686 Hello, Worl ...
- 信息学奥赛一本通 (C++)上机练习
信息学奥赛一本通(C++)上机练习 此书为娃儿的第一本刷题书.娃儿现在四年级 ,希望他能坚持下来.特开贴加油 luogu: disangan223 第一部分 C++语言 第一章 C++语言入门 T10 ...
- 信息学奥赛一本通_长乐一中老师演绎“奥赛传奇”
董永建(右一)在课堂上. 台海网5月14日讯 据福州晚报报道,长乐一中有一位"传奇"老师--15年来,他辅导的学生在全国高中生信息学奥赛中获金牌3人次.银牌3人次.铜牌5人次:在全 ...
- 信息学奥赛一本通 提高篇 第5章 矩阵乘法
例1 矩阵AXB 信息学奥赛一本通(C++版)在线评测系统 [矩阵乘法]矩阵A×B_Uletay-CSDN博客 矩阵乘法--矩阵A×B_vina的博客-CSDN博客 一本通1641[例 1]矩阵 A× ...
- 《信息学奥赛一本通提高篇》第6章 组合数学
例1 计算系数(NOIP2011提高) 信息学奥赛一本通(C++版)在线评测系统 NOIP2011计算系数_nanhan27的博客-CSDN博客 「NOIP2011」 计算系数 - 组合数_TbYan ...
- 《信息学奥赛一本通 提高篇》
提高篇 第一部分 基础算法 第1章 贪心算法 提高篇 第一部分 基础算法 第1章 贪心算法_青少年趣味编程-CSDN博客 提高篇 第一部分 基础算法 第1章 贪心算法 提高篇 第一部分 基础算法 第1 ...
- 信息学奥赛一本通 提高篇 第一部分 基础算法 第2章 二分与三分
信息学奥赛一本通 提高篇 提高版 第一部分 基础算法 第2章 二分与三分 信息学奥赛一本通 提高篇 提高版 第一部分 基础算法 第2章 二分与三分_mrcrack的博客-CSDN博客_信息学奥赛一本通 ...
- 信息学奥赛一本通 提高篇 第六部分 数学基础 相关的真题
第1章 快速幂 1875:[13NOIP提高组]转圈游戏 信息学奥赛一本通(C++版)在线评测系统 第2 章 素数 第 3 章 约数 第 4 章 同余问题 第 5 章 矩阵乘法 第 6 章 ...
最新文章
- springmvc二十一:自定义类型转换器
- 【四重优化,速看】剑指 Offer 13. 机器人的运动范围
- HBase的RowKey设计
- 使用requests访问必应在线翻译
- 多变量微积分(4)——多重积分之三重积分
- RadASM DosBox设置无法生效问题
- android手机 办公软件,寻最佳手机Office助手 八大安卓办公软件横评
- mac更新后Git无法使用的问题
- “金三银四“,敢不敢“试”?
- Stimulsoft 报表工具单元格内换行
- 《设计模式的艺术》读书笔记
- 关于noilinux的一些操作方法
- 【soft6星评论】中台只是一种说法,中小企业主们要擦亮眼睛
- 移动硬盘安装ubuntu 20.04 (主机win10)
- WIFI基础入门--802.11--TKIP/CCMP/RSN--8
- chrome浏览器字体小于12px的解决方式
- esp32~mp3播放实例解析
- 数据不平衡问题解决方法——欠采样
- 雷神的安全平台安全宝典
- Vector CAN Log报文收发分析工具VN1640/VN1630替代款工具--CANBOX
热门文章
- MySQL视图的应用
- 关于Netbeans调试PHP
- 有两个集合,两个集合都是10万个数据(已排序),判断B是不是A的子集,算法时间复杂度为Q(N)...
- gridview不换行,高亮显示
- 如何为 SQL Server 2000 分发和安装 SQL-DMO(引用)
- 嫌学校 App 太“烂”,极客父母做了开源版本,却遭官方报警?
- 收到字节 Offer,月薪 45k,揭秘面试流程及考点
- Spring Boot 项目的这些文件都是干啥用的?
- 两天,我把分布式事务搞完了
- Nacos,阿里开源,是真的香!!