题目 3在十进制下满足若各位和能被3整除,则该数能被3整除. 5在十六进制下也满足此规律. 给定数字k,求多少进制(1e18进制范围内)下能满足此规律,找出一个即可,无则输出-1. 题解 写写画画能找到规律,即是求与k互质的数x,x进制下即能满足上述规律. 相关 求最大公约数:辗转相除法(又叫欧几里得算法) 欧几里德定理: gcd(a, b) = gcd(b , a mod b) ,对于正整数a.b. 其中a.b大小无所谓.当a值小于b值时,算法的下一次递归调用就能够将a和b的值交换过来. 代码…
前面学了一个星期的C++,以前阅读C++代码有些困难,现在好一些了.做了一些NOI的题目,这也是一个长期的目标中的一环.做到动态规划的相关题目时发现很多问题思考不通透,所以开始系统学习.学习的第一本是<数据结构与算法C++描述>第三版,边学边做一些笔记.所以这些笔记中的代码有很多将会非常简单,甚至可能只有一个记录或者结论. 辗转相除法用来求两个整数的最大公约数,即能同时整除两个数的最大整数.程序如下: int gdc(int m,int n){ int rem; ){ //0之前的那个数就是最…
有两个正整数,求N!的K进制的位数 题目链接:action=showproblem&problemid=3503">http://sdutacm.org/sdutoj/problem.php? action=showproblem&problemid=3503 #include <bits/stdc++.h> using namespace std; const double eps = 1e-6; const double PI = acos(-1.0); c…
关于欧几里得算法求最大公约数算法, 代码如下: int gcd( int a , int b ) { if( b == 0 ) return a ; else gcd( b , a % b ) ; } 证明: 对于a,b,有a = kb + r  (a , k , b , r 均为整数),其中r = a mod b . 令d为a和b的一个公约数,则d|a,d|b(即a.b都被d整除), 那么 r =a - kb ,两边同时除以d 得 r/d = a/d - kb/d = m (m为整数,因为r也…
题目:https://codeforces.com/contest/1114/problem/C 将b分解为若干素数乘积,记录每个素数含多少次方 b = p1^y1·p2^y2·...·pm^ym. 然后求n!种每个素数含多少次方n ! = p1^x1·p2^x2·...·pm^xm· 答案就是 #include<cstdio> #include<iostream> #include<algorithm> #include<string> #include&…
链接:https://www.nowcoder.com/acm/contest/135/C来源:牛客网 题目描述 其中,f(1)=1;f(2)=1;Z皇后的方案数:即在Z×Z的棋盘上放置Z个皇后,使其互不攻击的方案数. 输入描述: 输入数据共一行,两个正整数x,m,意义如“题目描述”. 输出描述: 一个正整数k,表示输出结尾0 的个数或者放置皇后的方案数 输入例子: 375 16 输出例子: 14200 --> 示例1 输入 复制 375 16 输出 复制 14200 说明    鸣谢真·dal…
1.两个有序数组组合成一个新的有序数组 <?php $arr1=array(2,5,7,9,12); $arr2=array(3,4,6,8,10,11); function merge_sort($arr1,$arr2){ $len1=count($arr1); $len2=count($arr2); $arr=array(); $i=$j=0; while($i<$len1&&$j<$len2){ if($arr1[$i]<=$arr2[$j]){ $arr[]…
1.两个有序数组组合成一个新的有序数组 <?php $arr1=array(2,5,7,9,12); $arr2=array(3,4,6,8,10,11); function merge_sort($arr1,$arr2){ $len1=count($arr1); $len2=count($arr2); $arr=array(); $i=$j=0; while($i<$len1&&$j<$len2){ if($arr1[$i]<=$arr2[$j]){ $arr[]…
1022 D进制的A+B (20 分) 输入两个非负 10 进制整数 A 和 B (≤2​30​​−1),输出 A+B 的 D (1<D≤10)进制数. 输入格式: 输入在一行中依次给出 3 个整数 A.B 和 D. 输出格式: 输出 A+B 的 D 进制数. 输入样例: 123 456 8 输出样例: 1103 思路: 输入的数可以用int型来存放,计算和之后直接用除基取余法计算和的D进制数. 输出要注意和为0的情况. CODE: #include<iostream> #include…
转自:https://blog.csdn.net/qq_18310041/article/details/99656445 import copy # m进制 m = 5 n = 5 line = [[4,4,1,1,1],[4,3,0,1,2]] res = [] count_0 = [] count_1 = copy.deepcopy(line[1]) for i in range(n): count_0.append(m - 1 - line[0][i]) for i in range(n…