解题思路:先求出阶乘,然后去掉后面的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 人评分
C语言程序设计教程(第三版)课后习题8.8 (C语言代码)浏览:699 |
C语言程序设计教程(第三版)课后习题9.1 (C++代码)浏览:567 |
输出九九乘法表 (C语言代码)浏览:557 |
C语言程序设计教程(第三版)课后习题11.12 (C语言代码)浏览:738 |
C语言程序设计教程(第三版)课后习题12.3 (C语言代码)浏览:840 |
简单的a+b (C语言代码)浏览:745 |
汽水瓶 (C语言代码)浏览:612 |
C语言考试练习题_一元二次方程 (C语言代码)浏览:743 |
简单的a+b (C语言代码)浏览:610 |
时间转换 (C语言代码)浏览:646 |