题目链接:http://www.tyvj.cn/p/1018
sprintf函数 是个变参函数
字串格式化命令,主要功能是把格式化的数据写入某个字符串中。
sprintf(char *buffer,const char *format [,argument,...]);除了前两个参数固定外,可选参数是任意一个
buffer是字符数组名, format是格式化字符串
例如:
char s[20];
double f=14.309948;
sprintf(s,"%6.2f",f);
意为:把变量 f 以“6.2f”的形式存到字符数组 s中
1018 的源程序为:
#include<stdio.h>
#include<string.h>
int main ()
{
long long n,k;
long long sum;
char str[110];
while(~scanf("%lld%lld",&n,&k)){
sum=1;
for(int i=1;i<=n;i++){
sum*=i;
while(sum%10==0) sum/=10;
sum%=10000000000;
}
sprintf(str,"%lld",sum);
int len=strlen(str)-1;
int i=len-k+1;
if(i<0) i=0;
for(;i<=len;i++){
printf("%c",str[i]);
}
printf("\n");
}
return 0;
}
题目链接:http://www.tyvj.cn/p/1037
1037 的源程序为:
#include<stdio.h>
#include<string.h>
int main ()
{
long long n,k;
long long sum;
char str[110];
while(~scanf("%lld%lld",&n,&k)){
sum=1;
for(int i=1;i<=n;i++){
sum*=i;
while(sum%10==0) sum/=10;
sum%=100000000000;
}
sprintf(str,"%lld",sum);
int len=strlen(str)-1;
for(int i=len-k+1;i<=len;i++){
if(i<0) printf("0");
else printf("%c",str[i]);
}
printf("\n");
}
return 0;
}