The / repeats indefinitely with no intervening digits. In fact, the decimal expansion of every rational number (fraction) has a repeating cycle as opposed to decimal expansions of irrational numbers, which have no such repeating cycles. Examples of d…
题目大意 计算循环小数的位数,并且按照格式输出 怎么做 一句话攻略算法核心在于a=a%b*10,用第一个数组记录被除数然后用第二个数组来记录a/b的位数.然后用第三个数组记录每一个被除数出现的位置好去寻找循环节的位置. 我的代码(算法还是借鉴) #include <iostream> #include <cstring> using namespace std; int ar[300000]; int re[300000]; int lc[300000]; int main() {…
原题链接:https://vjudge.net/problem/UVA-202 题意:求一个数除以一个数商,如果有重复的数字(循环小数),输出,如果没有,输出前50位. 题解:这个题一开始考虑的是一个一个判,但太麻烦,复杂度太高,于是转化思路,如果是循环小数,那么余数与之前的相同,那么只需要统计余数是否相同,及其所出现的位置 ac代码 #include<iostream>#include<cstdio>#include<cstring>using namespace s…
Repeating Decimals 紫书第3章,这哪是模拟啊,这是数论题啊 [题目链接]Repeating Decimals [题目类型]抽屉原理 &题解: n除以m的余数只能是0~m-1,根据抽屉原则,当计算m+1次时至少存在一个余数相同,即为循环节:存储余数和除数,输出即可. 上面是我查到的,现在让我解释一下: 比如5/43,先是要模拟除法运算,第一步50/43 余7;第二步,70/43 于27... 这样一直取余下去,肯定不会超过43次,就会有余数相同的情况,有相同情况就是找到循环节了.…
给你两个数,问你他们相除是多少,有无限循环就把循环体括号括起来 模拟除法运算 把每一次的被除数记下,当有被除数相同时第一个循环就在他们之间. 要注意50个数之后要省略号...每一次输出之后多打一个回车... #include <iostream> #include <cstring> using namespace std; int a,b; ];//记录该被除数出现的位置 ],num,cnt; void fuc() { memset(flag,,; ) { ) break; fl…
题意:输入整数a和b,输出a/b的循环小数以及循环节的长度 学习的这一篇 http://blog.csdn.net/mobius_strip/article/details/39870555 因为n%m的余数只可能是0到m-1中的一个,根据抽屉原理,当计算m+1次时至少存在一个余数相同 发现看了题解理解起来也好困难啊, 后来手动画了一下5/7的竖式除法的式子,,理解一些了 #include<iostream> #include<cstdio> #include<cstring…
[链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 余数出现循环节. 就代表出现了循环小数. [代码] #include <bits/stdc++.h> using namespace std; int a,b; int bo[4000]; vector <int> v; int main(){ #ifdef LOCAL_DEFINE freopen("rush_in.txt", "r", stdin); freopen(&q…
The decimal expansion of the fraction 1/33 is 0.03, where the 03 is used to indicate that the cycle 03 repeats indefinitely with no intervening digits. In fact, the decimal expansion of every rational number (fraction) has a repeating cycle as opposed…
#include <iostream> #include<cstdio> #include<cstring> #include<algorithm> #include<cstdlib> #include<climits> #include<cmath> #define OK 1 #define ERROR 0 #define MAXSIZE 100 using namespace std; int main() { int…
题意: 给出两个圆的圆心坐标和半径,求这两个圆的公切线切点的坐标及对应线段长度.若两圆重合,有无数条公切线则输出-1. 输出是按照一定顺序输出的. 分析: 首先情况比较多,要一一判断,不要漏掉. 如果高中的那点老底还在的话,代码还是很好理解的. //#define LOCAL #include <cstdio> #include <cstring> #include <algorithm> #include <cmath> #include <vect…