Vijos 1696题:数与连分数
来源:互联网 发布:中国等级观念知乎 编辑:程序博客网 时间:2024/05/23 19:17
描述
写一个程序…可以实现在连分数和分数之间的互相转换…
样例1
样例输入1
[2;3,7]
51/22
样例输出1
51/22
[2;3,7]
提示
多组测试数据:
…每一个测试点有多组数据…数据的组数不超过100组…
约分:
计算结果最后是要约分的…但是..在分数转向连分数的时候..
我们不保证输入的数据是约分…..
连分数的输入格式:
连分数的输入格式是按照wiki里写的…
第一个位置的分号应该是为了避免可能的歧义~..
Range:
数字的规模都很小…
也就是它们都不会超过longint范围里….
包括中间的数据…
连分数的项数也不会超过100项..
#include <iostream>#include <string>#include <memory.h>using namespace std;string s;int main(){ std::ios::sync_with_stdio(false); while (cin >> s) { int a[100], t = 0; bool flag = false; memset(a, 0, sizeof(a)); if (s[0] == '[') { for (int i = 1; i < s.size(); i++) { if (s[i] >= '0'&&s[i] <= '9') { flag = true; a[t] = a[t] * 10 + (int)(s[i] - '0'); } else { t++; flag = false; } } int x = a[t], y = 1; for (int i = t; i >= 0; i--) { int temp = x; x = y + a[i] * x; y = temp; } int max = x, min = y; while (max%min != 0) { int temp = min; min = max%min; max = temp; } x = x / min, y = y / min; if (y == 1) cout << x << endl; else cout << x << "/" << y << endl; } else { for (int i = 0; i < s.size(); i++) { if (s[i] >= '0'&&s[i] <= '9') { flag = true; a[t] = a[t] * 10 + (int)(s[i] - '0'); } else t++; } if (t == 0) cout << '[' << a[0] << ']' << endl; else { int max = a[0], min = a[1]; while (max%min != 0) { int temp = min; min = max%min; max = temp; } int x = a[0] / min, y = a[1] / min; t = 0; cout << "["; while (x != 1) { int div = x / y, rem = x%y; if (t == 0) cout << div; else if (t == 1) cout << ";" << div; else cout << "," << div; x = rem; if (x != 1) { int temp = y; y = x; x = temp; } t++; } if (y != 0) cout << ',' << y; cout << ']' << endl; } } } return 0;}
1 0
- Vijos 1696题:数与连分数
- Vijos 1696-数与连分数【模拟】
- Vijos P1696 数与连分数【连分数】
- 连分数与历法
- Vijos 1304题:回文数
- 连分数
- 连分数
- 连分数
- 连分数
- Vijos 1090题:连续数之和
- Vijos 1117题:数的划分
- Vijos 1130题:数的计数
- Vijos 1772题:巧妙填数
- Vijos 1335题:数独验证
- vijos p1128 (选数)
- vijos P1129 产生数
- 【vijos】P1304 回文数
- Vijos P1304回文数
- JSON的使用方法
- Pandas使用经验小结
- cpu的简易架构
- poj[1001] Exponentiation
- BIT&&RMQ——Poj 3368 Frequent values
- Vijos 1696题:数与连分数
- PostgreSQL学习手册(常用数据类型)
- RxJava2使用详解
- Java多线程学习,错过的好文章,值得一看!
- 算法预备军(1)~数据结构绪论
- 终极 Shell on-zshrc
- 常见的排序算法实现
- scrapy.Selector的使用探索
- 如何在awk中使用正则表达式