十进制的分数转化为七进制的小数

来源:互联网 发布:网络聊天语言 编辑:程序博客网 时间:2024/04/29 14:54
F - Consecutive Digits
Time Limit:1000MS     Memory Limit:65536KB     64bit IO Format:%lld & %llu
Submit Status Practice POJ 2710

Description

As a recruiting ploy, Google once posted billboards in Harvard Square and in the Silicon Valley area just stating “{first 10-digit prime found in consecutive digits of e}.com”. In other words, find that 10-digit sequence and then connect to the web site — and find out that Google is trying to hire people who can solve a particular kind of problem. 

Not to be outdone, Gaggle (a loosy-goosy fuzzy logic search firm), has devised its own recruiting problem. Consider the base 7 expansion of a rational number. For example, the first few digits of the base 7 expansion of 1/5 10 = 0.12541... 7, 33/4 10 = 11.15151... 7, and 6/49 10 = 0.06000... 7, From this expansion, find the digits in a particular range of positions to the right of the "decimal" point. 

Input

The input file begins with a line containing a single integer specifying the number of problem sets in the file. Each problem set is specified by four base 10 numbers on a single line, n d b e, where n and d are the numerator and denominator of the rational number and 0 <= n <= 5,000 and 1 <= d <= 5,000. b and e are the beginning and ending positions for the desired range of digits, with 0 <= b,e <= 250 and 0 <= (e-b) <= 20. Note that 0 is the position immediately to the right of the decimal point.

Output

Each problem set will be numbered (beginning at one) and will generate a single line: 
    Problem set k: n / d, base 7 digits b through e: result

where k is replaced by the problem set number, result is your computed result, and the other values are the corresponding input values. 

Sample Input

41 5 0 06 49 1 333 4 2 7511 977 122 126

Sample Output

Problem set 1: 1 / 5, base 7 digits 0 through 0: 1Problem set 2: 6 / 49, base 7 digits 1 through 3: 600Problem set 3: 33 / 4, base 7 digits 2 through 7: 151515

Problem set 4: 511 / 977, base 7 digits 122 through 126: 12425

#include<iostream>  #include<cmath>  #include<algorithm>  #include<string>#include<cstring>#include<cstdlib>#define MAX 255#include<stack>#include<cstdio>using namespace std;    int main(){int T,n,d,b,e;cin>>T;for(int i=1;i<=T;i++){cin>>n>>d>>b>>e;printf("Problem set %d: %d / %d, base 7 digits %d through %d: ",i,n,d,b,e);n%=d;for(int j=0;j<=e;j++){n*=7;if(j>=b)printf("%d",n/d);n%=d;}cout<<endl;}return 0;}

0 0