第十一届 蓝桥杯 循环小数

news/2025/1/31 6:07:37/

试题 G: 循环小数

时间限制: 1.0s 内存限制: 256.0MB 本题总分:20 分

【问题描述】

已知 S 是一个小于 1 的循环小数,请计算与 S 相等的最简真分数是多少。
例如 0 . 3333 · · · 等于 1/3
,0 . 1666 · · · 等于 1/6。

【输入格式】
输入第一行包含两个整数 p 和 q,表示 S 的循环节是小数点后第 p 位到第q 位。
第二行包含一个 q 位数,代表 S 的小数部分前 q 位。
【输出格式】
输出两个整数,用一个空格分隔,分别表示答案的分子和分母。
【样例输入】
1 6
142857
【样例输出】
1 7
【评测用例规模与约定】
对于所有评测用例,1 ≤ p ≤ q ≤ 10。

解题思路

该题就是运用循环小数的特点:

  1. 纯循环小数转化为分数:如0.4285742857…

    找到循环体42857,该循环体有5位,故而0.4285742857…就是42857/99999,这里有5个9

    这个公式自已也可以推导,对于真分数X/Y来说,

    X/Y = L/(10^n - 1)

    其中L为循环节,n为循环节位数

  2. 混合循环小数转化为分数:如0.14285742857…

    大致方法和1中类似,不过注意的是这里的0.1不在循环体内,但可以转化为
    0.1+(0.4285742857...)/10,0.1转换为分数1/10,循环体部分用1中的方法来得到分数再/10即可。1/10+42857/99999/10。如果要得到最简分数,那么可以使用辗转相除法求得二者的最大公约数,之后再用最大公约数同时除以分子和分母即可。

程序(c++)

#include <bits/stdc++.h>using namespace std;
long gcdMax(long x, long y);int main()
{long a, b;long L, _L; //L存放循环体long F = 0; //F存放非循环体部分long X = 0, Y = 0; //X为分子,Y为分母,最终输出结果long gcd = 1; //最大公约数cin >> a >> b;cin >> _L;F = _L/pow(10, b-a+1);X = _L - F;Y = pow(10, b) - pow(10, a-1);gcd = gcdMax(X, Y);X /= gcd;Y /= gcd;cout << X << " " << Y << endl;return 0;
}/*辗转相除法求最大公约数*/
long gcdMax(long x, long y)
{long temp = 1;if(x > y) {temp = x;x = y;y = temp;}//x位较小值,y位较大值while((y%x) != 0){temp = y%x;y = x;x = temp;}return(x);
}

结果

yocin@ubuntu:~/Documents/cppPractice$ ./main 
1 6
142857
1 7  # 输出,表示1/7

http://www.ppmy.cn/news/666507.html

相关文章

适合520送礼物的无线蓝牙耳机,颜值高性价比高的520无线蓝牙耳机

眼看着今年的520情人节马上就要到了&#xff0c;不得不说在这个时候准备入手蓝牙耳机的还是蛮多的&#xff0c;作为礼物送给对象&#xff0c;可以戴着在车上听听音乐啥的&#xff0c;而且户外接听电话也是很方便&#xff0c;简直满满的幸福感&#xff0c;不过市面上的蓝牙耳机产…

Python蓝桥杯ALGO-995 24点

题目描述 问题描述   24点游戏是一个非常有意思的游戏&#xff0c;很流行&#xff0c;玩法很简单&#xff1a;给你4张牌&#xff0c;每张牌上有数字&#xff08;其中A代表1&#xff0c;J代表11&#xff0c;Q代表12&#xff0c;K代表13&#xff09;&#xff0c;你可以利用数学…

NANK南卡护眼台灯Pro全面评测:旗舰级护眼天花板!

随着社会的快速发展&#xff0c;现在越来越多的家庭开始使用台灯这一家居产品&#xff0c;这也催生了护眼台灯行业产品的快速升级&#xff0c;不断加大护眼质量。这不&#xff0c;南卡&#xff08;NANK&#xff09;家发布了新一代旗舰级护眼灯——南卡护眼台灯Pro&#xff0c;主…

蓝桥杯算法:斐波那契求Fn除以10007的余数

时间限制: 1.0s 内存限制: 512.0MB 【问题描述】 Fibonacci数列的递推公式为&#xff1a;FnFn-1Fn-2&#xff0c;其中F1F21。 当n比较大时&#xff0c;Fn也非常大&#xff0c;现在我们想知道&#xff0c;Fn除以10007的余数是多少。 <此题禁止使用数组容器等数据结构> 【…

素数环-蓝桥杯

题目描述 有一个整数 n&#xff0c;把从 1 到 n 的数字无重复的排列成环&#xff0c;且使每相邻的两个数&#xff08;包括首和尾&#xff09;的和都为素数&#xff0c;称为素数环。为了简便起见&#xff0c;我们规定每个素数环都从 1 开始。例如&#xff0c;6 的一个素数环&am…

【蓝桥杯】新型斐波那契数列

蓝桥杯 新型斐波那契数列 问题描述 新型斐波那契数列的第一、二、三项都为1&#xff0c;从第四项起每一项等于前面三项之和&#xff0c;求此数列第n项模m的余数。 输入格式 输入一行为两个整数n、m&#xff0c;用空格隔开。 输出格式 输出一行为新型斐波那契数列第n项模m的余数…

蓝桥杯——ALGO995——24点

通过万岁&#xff01;&#xff01;&#xff01; 题目&#xff1a;就是给你四张扑克牌&#xff0c;然后尽可能的通过加减乘除和括号得到小于等于24的最大值&#xff0c;最大就是24。注意&#xff0c;除法的时候需要判断是不是整除。思路&#xff1a;猛一看&#xff0c;感觉可能…

使用7号电池的科学计算机,新奇:可以用USB充电的5号、7号电池

在大家的日常生活中&#xff0c;电池绝对是的离不开的物件。特别是AA五号电池和AAA七号电池&#xff0c;用途更加广泛&#xff0c;比如在很多家电的遥控器中、玩具、数码产品中&#xff0c;都可以找到他们的身影。为了使用方便&#xff0c;有不少人都会选择使用充电电池。但是充…