uva 10555 – Dead Fraction)(数论)

uva 10555 – Dead Fraction)(数论)

大家好,又见面了,我是全栈君。

题目链接:uva 10555 – Dead Fraction

题目大意:给出一个小数,从…開始能够是不论什么数字,可是保证是无限循环小数。将该小数用分式的形式表示,而且要求分母尽量大。

解题思路:这题主要是怎么将无限循环小数转换成分式,这种:

  • 有小数0.abcdEEE,未循环部分长4。循环节为E,E的长度为i(如果)
  • abcd+E999(i910i
#include <cstdio>
#include <cstring>
#include <algorithm>

using namespace std;
typedef long long ll;
const int maxn = 105;
const ll INF = 0x3f3f3f3f3f3f3f;

char s[maxn];

ll gcd (ll a, ll b) {
    return b ?

gcd(b, a%b) : a; } int main () { while (scanf("%s", s) == 1 && strcmp(s, "0")) { int len = strlen(s)-5; ll ansu, ansd = INF; for (int i = 0; i < len; i++) s[i] = s[i+2]; for (int i = 0; i < len; i++) { ll d = 1, u = 0; for (int j = 0; j < i; j++) { d = d * 10; u = u * 10 + s[j] - '0'; } ll x = 0, y = 0; for (int j = i; j < len; j++) { x = x * 10 + s[j] - '0'; y = y * 10 + 9; } d = d * y; u = u * y + x; ll g = gcd(d, u); u /= g; d /= g; if (d < ansd) { ansd = d; ansu = u; } } printf("%lld/%lld\n", ansu, ansd); } return 0; }

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/115675.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • nessus使用教程扫描_pycharm详细使用教程

    nessus使用教程扫描_pycharm详细使用教程Nessus简介Nessus是十分强大的漏洞扫描器,内含最新的漏洞数据库,检测速度快,准确性高。下载地址:https://www.tenable.com/downloads/nessus账号注册1.点击”ConnentviaSSL”2.选择”NessusEssentials”版本3.填写注册信息,然后点击”Email”,nessus会给你发送一封邮件,包…

    2022年10月19日
    3
  • Mysql自连接查询「建议收藏」

    Mysql自连接查询「建议收藏」自连接查询假想以下场景:某一电商网站想要对站内产品做层级分类,一个类别下面有若干子类,子类下面也会有别的子类。例如数码产品这个类别下面有笔记本,台式机,智能手机等;笔记本,台式机,智能手机又可以按照品牌分类;品牌又可以按照价格分类,等等。也许这些分类会达到一个很深的层次,呈现一种树状的结构。那么这些数据要怎么在数据库中表示呢?我们可以在数据库中创建两个字段来存储id和类别名称,使用第三个字段存

    2022年6月10日
    32
  • 子查询关键字-ALL、ANY、SOME、IN、EXISTS「建议收藏」

    子查询关键字-ALL、ANY、SOME、IN、EXISTS「建议收藏」子查询关键字-ALL、ANY、SOME、IN、EXISTSALLselectfromwherec>all(查询语句)等价于selectfromwherec>result1andc>result2andc>result3特点: 1:all与子查询返回的所有值比较为true则返回true 2:ALL可以与=><>=<=<>结合使用 3:all表示指定列中的值必须要大于子查询集中的每一个值

    2022年7月27日
    11
  • Marlin2.0.9 Configuration_adv.h详解

    Marlin2.0.9 Configuration_adv.h详解/**Marlin3DPrinterFirmwareCopyright©2020MarlinFirmware[https://github.com/MarlinFirmware/Marlin]BasedonSprinterandgrbl.Copyright©2011CamielGubbels/ErikvanderZalmThisprogramisfreesoftware:youcanredistributeitand/ormodif

    2022年7月15日
    20
  • eclipse中文版自动补全设置

    eclipse中文版自动补全设置eclipse中文版自动补全设置如下:

    2022年6月28日
    25
  • JAVA如何遍历arraylist数组,Java 程序使用Lambda表达式遍历ArrayList

    JAVA如何遍历arraylist数组,Java 程序使用Lambda表达式遍历ArrayListJava程序使用Lambda表达式遍历ArrayList在此示例中,我们将学习在Java中使用lambda表达式遍历数组列表的每个元素。要理解此示例,您应该了解以下Java编程主题:示例:将ArrayList作为函数参数传递示例importjava.util.ArrayList;classMain{publicstaticvoidmain(String[]args){//创建Ar…

    2022年7月22日
    8

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号