数字字符序列
Time Limit:1000MS Memory Limit:65535K
题型: 填空题 语言: G++;GCC;VC
描述
有一个数字字符序列,它是由各项阶乘1(即1!),2(2!),6(3!),24(4!),120(5!),720(6!),5040(7!), (40320)8!,……(最多到12!)按顺序拼接而成,如下: 12624120720504040320…… 如下程序实现输入一个非0整数N,则输出该字符序列第N个数字字符,直到输入的N为0时结束(N为0时不用输出)
#include <stdio.h>
#include <stdlib.h>
char s[500]={0};
int fanc(int n)
{
return n<2?1:_______________________;
}
int main()
{
int i, t, n, tmp;
t=0;
for(i=12; i>=1; i--)
{
tmp = fanc(i);
while(tmp>0)
{
s[t++]=_______________________;
tmp/=10;
}
}
while(scanf("%d", &n), n>0)
{
printf("%c\n", s[t-n]);
}
return 0;
}
输入格式
每行一个整数,最后一行是0
输出格式
每一行输出第N个数字字符
输入样例
5 1 10
输出样例
4 1 2
#include <stdio.h>
#include <stdlib.h>
char s[500] = {0};
int fanc(int n) {
return (n < 2) ? 1 : n * fanc(n - 1);
}
int main() {
int i, t = 0, n, tmp;
for (i = 12; i >= 1; i--) {
tmp = fanc(i);
while (tmp > 0) {
s[t++] = (tmp % 10) + '0';
tmp /= 10;
}
}
while (scanf("%d", &n), n > 0) {
printf("%c\n", s[t - n]);
}
return 0;
}