解题思路:先求出阶乘,然后去掉后面的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 人评分