
程序设计与算法学习
文章平均质量分 91
无
Leslie_Hollow
这个作者很懒,什么都没留下…
展开
-
素数判断及其筛法
一、试除法判断素数 素数的定义是只能被常数1或自己整除,不能被其他整数整除的正整数。即不能被[2, n-1]区间内的整数整除的都是素数(2,3除外),所以可以从2开始试除,直到n-1,如果都不能整除,那就是素数,否则就是合数。当然这个可以优化,只需要试除到n\sqrt{n}n 就可以了,一个数如果被小于n\sqrt{n}n的数整除,必然被另一个大于n\sqrt{n}n的数整数。以下是试除法的代码。 bool isPrime(int n){ if(n <= 1) return false; f原创 2021-09-15 20:02:51 · 495 阅读 · 0 评论 -
高精度四则运算
对一个整数来说,如果超过了当前数据类型所能表示的范围,那么就只能用数组去模拟输出,下面介绍高精度的储存、高精度比较大小和四则运算(只适用于正整数)。 一、高精度的储存 大整数的储存使用一组数组来储存的,数组的低位表示数的低位,比如整数123456789储存在数组中就是d[0] = 9, d[1] = 8 …d[8] = 1, 但是我们用字符串输入时,字符串的低位存的是整数的高位,我们在储存时需要反转一下,这是需要一个len来记录整数的位数,并和数组组成一个结构体。 struct bign{ int d[1原创 2021-09-13 17:38:09 · 938 阅读 · 0 评论 -
递归
递归是一种不断调用自身函数的一个过程,就像是套娃一样,一层套着一层,很多人初学时都会被绕晕,但其实只要抓住递归的两个重要概念—递归边界和递归式,学起来就会轻松许多,下面我们由浅入深来讲讲递归。 首先从最简单的例子 n!n!n! 讲起,n!n!n! 的计算是n×(n−1)×⋯×1n\times(n-1)\times\cdots\times1n×(n−1)×⋯×1, 它写成递推式是n!=n×(n−1)!n! = n\times(n-1)!n!=n×(n−1)! ,这样就把规模为nnn的问题转化为规模为n−1n-原创 2021-09-02 15:16:00 · 257 阅读 · 0 评论