标签:ext 数字 head 哪些 style get ring int eof
hihocoder-1720-小数数字
给定一个真分数P/Q(P < Q),请你求出它的小数部分都包括0~9中的哪些数字。
例如1/2=0.5,只包含数字5;1/3=0.33333……,只包含数字3,1/7=0.142857142857……,包含数字124578。
两个整数P和Q,1 ≤ P < Q ≤ 1000000
从小到大输出小数部分出现的所有数字
13 123
01569
记录出现的余数,一旦出现之前出现过的,说明陷入了循环了。而两个整数的比值一定是有理数。一定能除尽或者找到循环节。
#include <cstdio> #include <cstring> #include <cstdlib> const int MAXN = 1000000 + 10; int P, Q, vis[MAXN], get[10]; int main() { int tmp1, tmp2; while( scanf("%d %d", &P, &Q) != EOF) { memset(vis, 0, sizeof(vis)); memset(get, 0, sizeof(get)); while(P){ tmp1 = P*10 / Q; get[ tmp1 ] = 1; P = P*10 % Q; if( vis[P] ){ break; }else{ vis[P] = 1; } } for(int i=0; i<10; ++i){ if( get[i] ){ printf("%d", i); } } printf("\n"); } return 0; }
标签:ext 数字 head 哪些 style get ring int eof
原文地址:https://www.cnblogs.com/zhang-yd/p/8824108.html