历届试题 小数第n位 时间限制:1.0s 内存限制:256.0MB 问题描述 我们知道,整数做除法时,有时得到有限小数,有时得到无限循环小数. 如果我们把有限小数的末尾加上无限多个0,它们就有了统一的形式. 本题的任务是:在上面的约定下,求整数除法小数点后的第n位开始的3位数. 输入格式 一行三个整数:a b n,用空格分开.a是被除数,b是除数,n是所求的小数后位置(0<a,b,n<1000000000) 输出格式 一行3位数字,表示:a除以b,小数后第n位开始的3位数字. 样例输入 1 8…
只要被除数出现重复,就表明循环节出现了.即使商不是循环小数,也可以补0作为循环节,这样就可以统一处理了. AC代码 #include <stdio.h> #include <vector> #include <map> using namespace std; vector<int>bits; map<int, int> pos; int div(int a, int b, int n) { do { pos[a] = (int)bits.siz…
问题描述 我们知道,整数做除法时,有时得到有限小数,有时得到无限循环小数. 如果我们把有限小数的末尾加上无限多个0,它们就有了统一的形式. 本题的任务是:在上面的约定下,求整数除法小数点后的第n位开始的3位数. 输入格式 一行三个整数:a b n,用空格分开.a是被除数,b是除数,n是所求的小数后位置(0<a,b,n<1000000000) 输出格式 一行3位数字,表示:a除以b,小数后第n位开始的3位数字. 样例输入 1 8 1 样例输出 125 样例输入 1 8 3 样例输出 500 样例…
问题描述 我们知道,整数做除法时,有时得到有限小数,有时得到无限循环小数. 如果我们把有限小数的末尾加上无限多个0,它们就有了统一的形式. 本题的任务是:在上面的约定下,求整数除法小数点后的第n位开始的3位数. 输入格式 一行三个整数:a b n,用空格分开.a是被除数,b是除数,n是所求的小数后位置(0<a,b,n<1000000000) 输出格式 一行3位数字,表示:a除以b,小数后第n位开始的3位数字. 样例输入 1 8 1 样例输出 125 样例输入 1 8 3 样例输出 500 样例…
问题描述 我们知道,整数做除法时,有时得到有限小数,有时得到无限循环小数. 如果我们把有限小数的末尾加上无限多个0,它们就有了统一的形式. 本题的任务是:在上面的约定下,求整数除法小数点后的第n位开始的3位数. 输入格式 一行三个整数:a b n,用空格分开.a是被除数,b是除数,n是所求的小数后位置(0<a,b,n<1000000000) 输出格式 一行3位数字,表示:a除以b,小数后第n位开始的3位数字. 样例输入 1 8 1 样例输出 125 样例输入 1 8 3 样例输出 500 样例…
<题目链接> 题目大意: 给你一个字符串,要求将字符串的全部字符最少循环2次需要添加的字符数. [>>>kmp next函数 kmp的周期问题]  #include <cstdio> #include <cstring> + ; char s[maxn]; int Next[maxn]; void get_next() { , k = -; Next[] = -; while (s[j]) { || s[j] == s[k]) Next[++j] =…
两个整数做除法,有时会产生循环小数,其循环部分称为:循环节.比如,11/13=6=>0.846153846153.....  其循环节为[846153] 共有6位.下面的方法,可以求出循环节的长度. //n是被除数,m是除数 public static int f(int n, int m) { n = n % m; Vector v = new Vector(); for (;;) { v.add(n); n *= 10; n = n % m; if (n == 0) return 0; if…
<题目链接> 题目大意: 意思是,从第1个字母到第2字母组成的字符串可由某一周期性的字串(“a”) 的两次组成,也就是aa有两个a组成: 第三行自然就是aabaab可有两个aab组成: 第四行aabaabaab可由三个aab组成: 第五行aabaabaabaab可有四个aab组成 解题分析: 求字符串的前缀是否为周期串,若是,打印循环节的长度及循环次数: #include <cstdio> #include <cstring> ; char s[M]; int nxt[…
题目链接:option=com_onlinejudge&Itemid=8&page=show_problem&problem=3163">点击打开链接 题意: 给定一个字符串str 求字符串str的 循环节个数为 1-len 个的 最长子串长度 思路:套用kmp的性质 #include<string.h> #include<stdio.h> #include <iostream> using namespace std; #def…
做一个高产的菜鸡 传送门:HDU - 3374 题意:多组输入,给你一个字符串,求它最小和最大表示法出现的位置和次数. 题解:刚刚学会最大最小表示法,amazing.. 次数就是最小循环节循环的次数. #include<bits/stdc++.h> using namespace std; int nt[1000100],b[1000100]; char a[1000100]; void kmp_nt(int m) { int i,j; i = 0; nt[0] = j =-1; while(…