| Time Limit: 1000MS | Memory Limit: 65536K | |
| Total Submissions: 3680 | Accepted: 1523 |
Description
Every fraction can be converted to a repeatin decimal. For example 1/2 = .5, 1/3 = .(3) and 1/6 = .1(6). Given an integer n, Tom wants to know how many digit k occurs totally in the repeating decimal presentation of 1/2, 1/3 ... 1/n.
Input
The input consists of several test cases. Each test case is a line containing two integers n (2 ≤ n ≤ 100) and k (0 ≤ k ≤ 9).
Output
Output the total occurrence of the digit.
Sample Input
3 5 7 3 7 0
Sample Output
1 1 0
题意:求1/2到1/n之间是循环小数表示用了哪些数字;
#include#include using namespace std; int num[102][10]; int repeat[102]; int main(){ int n,k; memset(num,0,sizeof(num)); for (int i=2;i<101;i++){ memset(repeat,-1,sizeof(repeat)); int j=1; repeat[j]=0; int t=1; while (1){ j*=10; num[i][j/i]++; j%=i; if (repeat[j]!=-1||j==0) break; repeat[j]=t++; } } while (cin>>n>>k){ int ans = 0; for (int i = 2; i <= n; i++) ans += num[i][k]; cout<