swustoj dearway's problem(0240)

来源:互联网 发布:花千骨衣服淘宝 编辑:程序博客网 时间:2024/06/05 03:00
请编写一个程序,输出N的阶乘的十进制表示中从最末一个非0位开始自低位向高位数的第K位。 
其中:0<=N<=10000,1<=K<=5 
例如:N=4,K=2,结果是2(4!=24) N=6,K=1,结果为2(6!=720)
Description
有多组输入数据。 
每组数据输入两个整数N,K
Input
输出每行一个整数,即测试数据的结果。
Output
1
2
3
4 2
6 1
Sample Input
1
2
3
2
2
Sample Output
#include<iostream>#include<stdio.h>#include<algorithm>using namespace std;#define _max 100000int main(){int n, k;int ans = 1;while (cin >> n >> k){long long sum = 1;for (int i = n; i >= 2; i--){sum *= i;while (sum % 10 == 0){sum /= 10;}if (sum > _max)//每次只保存后五位非零数据sum %= _max;}//cout << sum << endl;while (k--){ans = sum % 10;sum /= 10;}cout << ans << endl;}return 0;}


0 0
原创粉丝点击