解题思路:先求出阶乘,然后去掉后面的0,再把数字转换为字符串,然后再取后面的子串即可。
注意事项:转换字符串时使用了sprintf函数,把数字转换为字符串,该函数有3个参数:第1个参数是要保存转换结果字符串的字符数组,第2个参数是输出格式,第3个参数是要转换的整数。
参考代码:
#include <stdio.h> #include <string.h> #define LL long long int main() { LL p=1; int n,k,i,len; char s[20]; scanf("%d%d",&n,&k); for(i=1;i<=n;i++) p=p*i; while(p%10==0) p=p/10; sprintf(s,"%lld",p); //使用sprintf函数把数字转换为字符串 len=strlen(s); if(k>len) printf("%s\n",s); else printf("%s\n",s+(len-k)); return 0; }
0.0分
0 人评分
2006年春浙江省计算机等级考试二级C 编程题(2) (C++代码)直接打表啊8以上值不变hhh浏览:664 |
C二级辅导-等差数列 (C语言代码)浏览:1315 |
C语言程序设计教程(第三版)课后习题8.3 (C语言代码)浏览:1110 |
C语言程序设计教程(第三版)课后习题3.7 (C语言代码)浏览:863 |
C二级辅导-阶乘数列 (C语言代码)浏览:583 |
矩阵的对角线之和 (C语言代码)浏览:1401 |
青年歌手大奖赛_评委会打分 (C语言代码)浏览:2248 |
小O的数字 (C语言代码)浏览:1490 |
C语言程序设计教程(第三版)课后习题5.5 (C语言代码)浏览:546 |
C语言程序设计教程(第三版)课后习题3.7 (C语言代码)浏览:1302 |