背景

...

...:“这个简单...我们还是去刚才的海边呗...”
...:"其实今晚...我是有一定要完成的事情的..." .,
威尼斯真的是一个美丽的城市...很小的时候我就听说这个地方..

这一天..从贝鲁特归来的商队..除了布匹和香辛料...还带来的东方的数字....
也有人曾经讨论过它们的历史...
只是很长时间这些都不被那些数学家们所重视..

人们怀着敬畏的心情..小心的审视着这些新奇的东西...
而它们..给生活在这片土地上的人们所带来的..是很大的帮助..
...

描述

写一个程序...可以实现在连分数和分数之间的互相转换...

样例1

样例输入1

[2;3,7]
51/22

样例输出1

51/22
[2;3,7]

限制

出题人不透露

提示

多组测试数据:
...每一个测试点有多组数据...数据的组数不超过100组...
对于Pascal里...可以这样子
while not eof do begin
...
end;
来实现这点..
(至于..C++里..我就不太清楚了...)
约分:
计算结果最后是要约分的...但是..在分数转向连分数的时候..
我们不保证输入的数据是约分.....
连分数的输入格式:
连分数的输入格式是按照wiki里写的...
第一个位置的分号应该是为了避免可能的歧义~..
English:
我们校内的时候又同学抱怨英文看不懂...可以访问这个页...蛮好用的...
或者在wiki左侧的语言栏里最下面找中文切换一下就行了...
Range:
数字的规模都很小...
也就是它们都不会超过longint范围里....
包括中间的数据...
连分数的项数也不会超过100项..
See also:
连分数的其它知识..可以阅读....至于这个.....

问题链接:Vijos P1696 数与连分数

问题分析

连分数与分之间相互转换问题。

需要了解和掌握有关连分数的概念与表示方式,可以查看中英文版的维基百科的“连分数”。

剩下的就是简单的分数计算问题了。

程序说明

需要考虑特例的情况。例如,连分数只有a0的情况,分数的分母为1的情况。

程序中不考虑约分的问题。

程序中的迭代计算问题尽可能地简洁。

题记

把功能封装到函数是一种好的做法,程序逻辑更加简洁。

做分数题,又回到少年时代的感觉。

参考链接:(略)

AC的C++程序如下:

#include <iostream>
#include <cstdio>
#include <cctype>
#include <string>
#include <vector>using namespace std;string s;void continuedfraction2fraction(string& s)
{int i=1;vector<int> a;while(s[i] != ']') {if(isdigit(s[i])) {int v = 0;while(isdigit(s[i])) {v *= 10;v += s[i] - '0';i++;}a.push_back(v);} elsei++;}if(a.size() == 1)printf("%d\n", a.back());else {int n, d;n = a.back();d = 1;a.pop_back();while(a.size() != 0) {swap(n, d);n = a.back() * d + n;a.pop_back();}printf("%d/%d\n", n, d);}
}void fraction2continuedfraction(int n, int d)
{int nextd;char separator = ';';if(n % d == 0)printf("[%d]\n", n / d);else {printf("[");printf("%d", n / d);nextd = n % d;n = d;d = nextd;while(d != 0) {printf("%c", separator);printf("%d", n / d);nextd = n % d;n = d;d = nextd;separator = ',';}printf("]\n");}
}int main()
{while(getline(cin, s)) {if(s[0] == '[') {continuedfraction2fraction(s);} else {int numerator, denominator;sscanf(&s[0], "%d/%d", &numerator, &denominator);fraction2continuedfraction(numerator, denominator);}}return 0;
}

转载于:https://www.cnblogs.com/tigerisland/p/7563750.html

Vijos P1696 数与连分数【连分数】相关推荐

  1. Vijos 1696-数与连分数【模拟】

    P1696数与连分数 Accepted 标签:[显示标签] 背景 ... ...:"这个简单...我们还是去刚才的海边呗..." ...:"其实今晚...我是有一定要完成 ...

  2. ACM 全部算法总结

    ACM 所有算法 附带我学过的算法的博客链接 数据结构 栈 队列 链表 哈希表 哈希数组 堆 优先队列 双端队列 可并堆 左偏堆 二叉查找树 Treap 伸展树 并查集 集合计数问题 二分图的识别 平 ...

  3. 数学之美:“植物身上的黄金分割”

    点击蓝色"程序猿DD"关注我 回复"资源"获取独家整理的学习资料! 作者 | 刘大可先生 来源 | card.weibo.com/article/m/show/ ...

  4. ACM所有算法大全(持续更新)

    转载自: http://blog.sina.com.cn/s/blog_adb6743801019h29.html ACM 所有算法 数据结构 栈,队列,链表 哈希表,哈希数组 堆,优先队列 双端队列 ...

  5. 蓝桥杯java历年真题及答案整理(共100道题目及答案)

    文章目录 1.字符排序 2.串的简单处理 3.猜算式 4.Excel地址转换 5.手机尾号评分 6.括号问题 7.扑克牌排列 8.第一个数字(数字的值返回) 9.放麦子 10.求21位数的水仙花数 1 ...

  6. java五角星金字塔,数学和艺术的结合——黄金分割

    原标题:数学和艺术的结合--黄金分割 黄金分割我们都有所耳闻,它是数学与艺术的结合,为我们展现精确的美.那么,黄金分割在生活中有哪些应用呢? 一.五角星图形 我国的国旗.国微.军旗.军徽都采用了五角星 ...

  7. 2023年你最值得了解的信息技术-AI篇(一)

    列表 85 - 其他 辽宁省 大连优联智能 自动化生产线提供商 未融资 大连优联智能是一家自动化生产线提供商,集规划设计.制造安装.系统集成.视觉检测及AI数据智能分析于一体,可为汽车车身及发动机制造 ...

  8. 蓝桥杯--2013--黄金连分数(大数)

     4.黄金连分数 黄金分割数0.61803... 是个无理数,这个常数十分重要,在许多工程问题中会出现.有时需要把这个数字求得很精确. 对于某些精密工程,常数的精度很重要.也许你听说过哈勃太空望远 ...

  9. 蓝桥杯 黄金连分数(BigDecimal的使用)

    标题: 黄金连分数 黄金分割数0.61803... 是个无理数,这个常数十分重要,在许多工程问题中会出现.有时需要把这个数字求得很精确. 对于某些精密工程,常数的精度很重要.也许你听说过哈勃太空望远镜 ...

最新文章

  1. java安装cab破损,WCELOAD无法安装压缩的CAB文件
  2. powershell 遍历json_如何从Powershell脚本读取JSON数据并遍历它
  3. dubboSPI机制浅谈
  4. zabbix php 安装,zabbix_Linux安装php5.6.31
  5. php webp decode.h,HCTF两道web题目
  6. 201671010430 司昕劼 实验十四 课程学习总结
  7. Linux、UNIX下磁带机的管理和使用
  8. OI树上问题 简单学习笔记
  9. 玩玩小爬虫——试搭小架构
  10. 关于ubuntu17.04之apt-get源失败 解决办法
  11. Java——容器和泛型
  12. 最大熵模型中的数学推导
  13. java 从sip服务器_如何通过域而不是IP地址注册到SIP服务器并从客户端创建SIP帐户?...
  14. 聊天ai机器人_适用于您网站的14种最佳AI聊天机器人软件(已比较)
  15. 计算机控制系统的数字量输出通道由,计算机控制-习题
  16. 斯坦福大学C语言课程观后感,看《斯坦福大学公开课:编程方法学》有感之一...
  17. jQuery动画效果——淡入淡出
  18. sop8语音芯片选型,九齐硕呈等等比较,看完此篇就足够了
  19. keepalived 多节点设置
  20. 临床执业助理医师(综合练习)题库【3】

热门文章

  1. java webapps路径_java 获取服务器端的webapps路径 | 学步园
  2. mysql创建的是拉丁_将MySQL数据库从拉丁转换为UTF-8
  3. python中如何输出中文_python中怎么输出中文-问答-阿里云开发者社区-阿里云
  4. 手机应用软件下载导航php源码_第八篇:你需要一个没有广告的导航吗,我免费给你源码...
  5. keystore文件_如何手动给APK文件签名
  6. java在dog中定义name变量,组合构造 冯跃峰 java中组合的应用(不相干的类共同完成一个功能)+构造器回顾...
  7. hibernate4调用mysql存储过程_hibernate调用存储过程
  8. (1) nginx的安装
  9. Spring Cloud 第一天课堂笔记
  10. python万年历_Python实现的简单万年历例子分享