
编码能力提升
文章平均质量分 60
这部分的内容完全是用C语言进行实现的,对于欧拉计划题目1-50的解析,和1-50的答案
初猿°
小白一名
展开
-
欧拉计划第一题
对于欧拉的一些解题思路,以及源代码原创 2023-06-16 10:15:05 · 242 阅读 · 2 评论 -
欧拉计划第二题
通过观察每隔3项才会是偶数, 为什么因为从3 项开始偶数加奇数等于奇数, 4项等于偶数加奇数等于奇数,第五项等于奇数加奇数等于偶数,通过这样的推断来得出的结论,也就是数学归纳法,然后通过F(n) = F(n - 1) + F(n - 2) 这个公式进行推导。首先我们要考虑斐波那契数列,由数学归纳法可得第n项(n > 2) f(n) = f(n - 1) + f(n + 2), 也就是第n项的前两项和;斐波那契数列中的每一项都是前两项的和。推导出F(n) = 4* F(n − 3) + F(n−6)原创 2023-06-16 21:49:57 · 140 阅读 · 3 评论 -
欧拉计划第三题
第一种暴力解,我用了素数筛,什么是素数筛,一个数他可以通过它最小的质因子来乘得到,比如26 = 2 * 13来得到, 39 = 3 * 13,来得到 50 = 2 * 25 来得到所以通过这个特性来定义一个数组,代码如下。质数就是这个数的因子只有1和它本身,也就是这个数只能通过n = 1 * n来得到。那通过这个逻辑就可以一直除下去,直到除到除数等于被除数,那被除数就是最大质因子。13195的质因数包括5、7、13和29。一个合数都是通过质数的n次幂来相乘得到的。如果确实没有理解到可以去搜索相关解释。原创 2023-06-17 22:40:17 · 200 阅读 · 1 评论 -
欧拉计划第四题
回文数是指从前往后读和从后往前读都一样的数。由两个2位数相乘得到的回文数中,最大的是 9009=91×99。求最大的由两个3位数相乘得到的回文数。这个题的解法我只想到了暴力解,也就是100到999进行两个循环枚举,对比的话我用了字符串进行来对比,因为可以减少时间。原创 2023-06-18 16:56:57 · 123 阅读 · 1 评论 -
欧拉计划第五题
观察发现如果这个数可以除以1-10 ,那这个数就只需要由质数的幂次小于等于10相乘就可以得到最小的可以除以1-10的数。第一种方法需要用欧几里得算法,这个算法可以在。2520是最小的能够被1到10整除的正数。最小的能够被1到20整除的正数是多少?最终答案为 232792560。对于小于10的数进行一下操作。原创 2023-06-18 17:42:07 · 157 阅读 · 1 评论 -
欧拉计划第6题
欧拉计划题目C语言基础代码实现原创 2023-07-16 14:19:59 · 114 阅读 · 1 评论 -
欧拉计划第七题
前6个质数分别是2、3、5、7、11和13。第10 001个质数是多少?答案为:104743。原创 2023-07-16 15:24:27 · 151 阅读 · 1 评论 -
欧拉计划第八题
在如下的1000位数中,连续四个数字的最大乘积是 9×9×8×9=5832。求这个1000位数中连续十三个数字的最大乘积。答案为:23514624000。原创 2023-07-16 15:57:21 · 156 阅读 · 1 评论 -
欧拉计划第9题
a b c两两互质,那a , b, c 的乘以同一个数他们的相乘得到的数之间也是勾股数;通过 a , b, c两两互质的性质,可以推到得到他们为两个奇数一个偶数,然后再通过,勾股定理可以推到得到,a, b为一奇一偶,最终答案:31875000 各边分别为200,375,425 他们对应的素勾股数8,15,17。假设a为偶,b为偶,违反了第一条性质就是abc两两互质,排除。然后去判断b是否为整数,如果是就是改题的解。第二种解法就是,素勾股数,假设a为奇数,b为奇数,所以a, b为一奇数一偶。原创 2023-07-17 12:58:35 · 221 阅读 · 1 评论 -
欧拉计划第十题
这道题用之前我主页欧拉计划第七题的线性筛就很简单了。所有小于10的质数的和是2+3+5+7=17。答案为:142913828922。求所有小于两百万的质数的和。原创 2023-07-18 18:36:11 · 82 阅读 · 1 评论 -
欧拉计划第11题
博主比较Low直接手绘的,这个题解题的方式就是这个方向数组进行来求解;意思就是把该点看作中心,向各方向进行偏移,而偏移的位置就是图中方向数组中的坐标;然后,通过理解可以发现,其实只用进行偏移4个方向就可以得到该题的答案,如果不是很懂的话就可以带入几个相邻的点就可以发现了。而偏移那4个方向,就是左上(-1,-1)上(-1,0)右上(-1,1)右(0,1);在这个20×20方阵中,四个呈一直线(竖直、水平或对角线)相邻的数的乘积最大是多少?在如下的20×20方阵中,有四个呈对角线排列的数被标记为红色。原创 2023-07-19 10:21:42 · 106 阅读 · 0 评论 -
欧拉计划第12题
欧拉计划12题原创 2023-07-20 10:43:15 · 155 阅读 · 0 评论 -
欧拉计划第13题
欧拉计划第13题原创 2023-07-21 10:06:54 · 199 阅读 · 1 评论 -
欧拉计划第14题
就是通过函数,调用自身,直到达到结束条件,进行一步一步的往回返回,到最初进入函数的时候在返回给调用函数的过程;很简单就是通过数组,你把数带入数组他会返回一个数,而你把一个数带进函数他也会返回你一个结果,你会发现数组和函数有相似的地方,而调用函数肯定比用数组的时间会多,因为数组的时间复杂度就相当于O(1);通过这个过程的理解,函数变为数组的过程,就称为空间换时间;反过来就是时间换空间。上个方法,我在我主机上跑的时间是1.3秒,我觉得一个普通的这种程序需要跑1.3秒那确实这个程序就写的比较差,那如何去改进呢?原创 2023-07-22 13:56:41 · 107 阅读 · 1 评论 -
欧拉计划第15题
这个题需要这样来理解,以2*2这个方格举例,方向只能往右或下,那右和下就分别为两次,就相当于,从4次中取2次右或下那么另一个方向他就定下来了,假如我先走两次右,那么后两次就只有下了;最终就等于 :40 * ..... * 20 / 20 * ... * 1;从一个2×2的方格的左上角开始,共有6条路径可达到右下角(不能后退)请问,假如把上述方格的规模改成20×20,共有多少条路径呢?所以可以通过排列数的计算公式来计算这个题。最终答案:137846528820。原创 2023-07-24 09:51:38 · 78 阅读 · 0 评论 -
欧拉计划第16题
大整数简单乘法原创 2023-07-25 09:27:58 · 140 阅读 · 0 评论 -
欧拉计划17题
不计入空格和连字符:例如,342(three hundred and forty-two)包含23个字母,而115(one hundred and fifteen)包含20个字母。单词“and”的使用方式遵循英式英语的规则。把1到5写成英文单词分别是:one、two、three、four、five。这些单词一共用了3+3+5+4+4=19个字母。如果把1到1000都写成英文单词,一共要用多少个字母?最终答案:21124。原创 2023-07-26 09:39:19 · 171 阅读 · 1 评论 -
欧拉计划18题
第一种解法,这个题和树的结构很像,如果从顶点往下去判断当前这个题,就是题目所说的需要16384条路径来判断大小,而如果去解决67题,第一中方式解决的方法,时间会很长很长。然而,对于67题,虽然是一道相同类型的题目,但是其中的数字三角形将拥有一百行,就不再能够通过暴力枚举的方法来解决,而需要一个更加聪明的办法!动态规划,第一步定义动规状态,第二部推倒动规方程,第三步证明动规方程,第四步编写程序;从如下数字三角形的顶端出发,不断移动到下一行与其相邻的数直至到达底部,所能得到的最大路径和是23。原创 2023-07-27 10:23:22 · 105 阅读 · 1 评论 -
欧拉计划第19题
m:月(m大于等于3,小于等于14,即在蔡勒公式中,某年的1、2月要看作上一年的13、14月来计算,比如2003年1月1日要看作2002年的13月1日来计算)这个题我认为最简单的做法就是蔡勒公式,把每年每个月一号带入公式就可以求得结果了;w对7取模得:0-星期日,1-星期一,2-星期二,3-星期三,4-星期四,5-星期五,6-星期六。在二十世纪(1901年1月1日到2000年12月31日)中,有多少个月的1号是周日?[ ]代表取整,即只要整数部分。c:世纪-1(前两位数)原创 2023-07-28 09:29:26 · 118 阅读 · 1 评论 -
欧拉计划第20题
×3×2×1=3628800,所以10!的各位数字和是3+6+2+8+8+0+0=27。的意思是 n×(n−1)×…原创 2023-07-29 21:20:36 · 110 阅读 · 2 评论 -
欧拉计划第21题
那么题意理解了,现在的问题就是如何去求每个数的它本身的因子,最暴力的解法,每个数都去余,取余为0就是他的因子;这个题理解就是,一个数的除了它本身的所有因子相加等于另一个数,另一个数的除了它本身的所有因子相加等于之前那个数,那这两个数就是亲和数。qi和pi是一定是互质的,如果他们俩不互质,那么n和m就不互质,所以最终可以得到上面的公式;F(m)和F(n)除了第一项,后面项都是相同的那么就可以用F(A)来表示F(B)的的思想来看,一个数的因子个数等于他的质因子的幂次加一相乘得来的;那么18的真因子和为。原创 2023-08-01 10:46:32 · 184 阅读 · 0 评论 -
欧拉计划22题
例如,按照字母序排序后,位于第938位的名字是COLIN,它的字母价值是3+15+12+9+14=53。因此,COLIN这个英文名的得分是938×53=49714。中有五千多个英文名。首先将这些英文名按照字母序排序,然后计算出每个英文名的字母价值,乘以它在按字母序排序后的位置,得到的就是这个英文名的得分。上述文本文件中,所有英文名的得分之和是多少?最终答案:871198282。原创 2023-08-01 11:30:01 · 339 阅读 · 0 评论 -
欧拉计划23题
12 是最小的过剩数,1 + 2 + 3 + 4 + 6 = 16。经过分析,可以证明所有大于 28123 的数字都可以被写成两个过剩数之和。但是这个上界并不能被进一步缩小,即使我们知道最大的不能表示为两个过剩数之和的数字要比这个上界小。如果一个数的所有真因子之和等于这个数,那么这个数被称为完全数。例如,28 的所有真因子之和为 1 + 2 + 4 + 7 + 14 = 28,所以 28 是一个完全数。如果一个数的所有真因子之和小于这个数,称其为不足数,如果大于这个数,称其为过剩数。原创 2023-08-02 12:10:20 · 86 阅读 · 0 评论 -
欧拉计划第24题
接下来就算如何去确定当前位置的数了,假如012 我要找他第3种排列,那就需要往后找两次,因为它本身就算一种,第一个位置假如为0那么后面就有2!种排列,012,021,那么不够,那就把第一个位置的0换为1,然后刚好是第3次就直接从小到大一次排列,102也就是第三种排列,这样一个一个位置去确定;排列是一个物体的有序安排。通过上面的纸上实现的过程,可以发现是有规律可循的,那么找100万次也不用去执行100万次程序了;0, 1, 2, 3, 4, 5, 6, 7, 8, 9 的第 100 万个字典排列是什么?原创 2023-08-03 14:37:14 · 123 阅读 · 0 评论 -
欧拉计划25题
这个题目求的是1000位数字是第几项,那么问题来了,没有类型可以存的下1000的数字,那么只有每位存进数组进行相加,那么这个题就和第。大整数加法,0位存当前数的位数,低位存低位,高位存高位(因为方便进位);在斐波那契数列中,第一个包含1000位数字的是第几项?在斐波那契数列中,第一个包含三位数字的是第12项。就差了太多了,都需要用大整数加法;原创 2023-08-04 09:54:46 · 125 阅读 · 0 评论 -
欧拉计划26题
这个题的解法,其实很简单就是模拟纸上除的竖式,通过竖式会发现,当余数为0时说明当前数没有循环,当同一个余数出现第二次时,说明这个数出现了循环;其中 0.1(6) 表示 0.166666...,因此它有一个长度为 1 的循环圈。可以看出 1/7 拥有一个 6 位的循环圈。分子为1的分数称为单分数。找出小于 1000 的数字 d,1/d 的十进制表示含有最长的循环圈。原创 2023-08-05 12:36:44 · 137 阅读 · 0 评论 -
欧拉计划27题
40时,402 + 40 + 41 = 40(40 + 1) + 41可以被41整除,故当。这个公式中a和b的系数分别为多少,这个公式从0-x的解都为质数,且x是最大的;2.a+b+1为正整数,并且为质数,因为当n等于1时。1.b一定为正整数,并且为质数,因为当n等于0时。的绝对值,如|11| = 11|,|-4| = 4。= 0 ~ 39时它可以得到40个质数,不过当。通过计算机分析,一个更不可思议的公式诞生了。从0开始递增时,得到最多的连续的质数项,并把。= 41时得到的不是质数。原创 2023-08-06 20:43:17 · 177 阅读 · 0 评论 -
欧拉计划28题
但是第一圈不适用于这个代码,因为只有1;考虑以同样方式构成的1001×1001螺旋数阵,其对角线上的数之和是多少?可以看出,该数阵对角线上的数之和是101。最终答案:669171001。m是边长,n是第几圈;原创 2023-08-07 09:31:29 · 132 阅读 · 0 评论 -
欧拉计划29题
这个题就是求2-100的2-100的幂次的个数,切不重复,问题就是如何去找到重复的那些数;那么如何去进行判断呢,通过幂次来,这个幂次不管如何边他最终都是6;那就可以直接用2^6去标记 上面个两个。,将它们排列并去重所得到的数列有多少个不同的项?考虑所有满足2≤a≤100和2≤b≤100的幂。那么这就是被重复计算的数。考虑所有满足2≤a≤5和2≤b≤5的幂。原创 2023-08-08 11:07:31 · 84 阅读 · 0 评论 -
欧拉计划30题
这个题不难,把每位数提出来再通过5的幂次再进行相加起来和这个数本身对比就可以了,但是有个问题就是这个上界去如何得到?先通过发现每位数最大为9,那么就是每位最大就是。上面这三个数的和是1634+8208+9474=19316。找出所有可以写成其各位数字的五次幂之和的数,并求这些数的和。,设有n位,那么这个数的每位数的5幂次和最大就为。,通过这两个条件利用二分法,去得到n最大为6点几。由于1=1^4并不是求和,所以这里不计入内。那就取n=7,上界最大就为。,而有n位的话,这个数就得大于等于。原创 2023-08-09 09:45:13 · 122 阅读 · 0 评论 -
欧拉计划31题
只有这一个公式肯定是求不出最后个结果的,而递推过程就是把一个大的问题去拆分为多个小的问题,然后通过小的问题结果来结合起来得到最终的大的问题的结果,这就是对于递推的一个简单的解释;比如凑5元有两个方案,一个方案里有1元和2元,一个方案里只有一元,那么这两个方案的构成方法是不同的第一个方案有3种分别是5个一元,3个1元和1个2元,1个1元和2个2元 (题目没有要求每种货币必须用),然后第二个方案只有一种,5个一元;那么这就怎么了,这就确定了递推状态,假如钱币的种类为n,需要凑多少钱为m,那么可以写出公式。原创 2023-08-10 10:55:06 · 98 阅读 · 0 评论 -
欧拉计划32题
好的可以发现,1位数乘以4位数,2位数乘以3位数,才可以有机会找到满足题目的数字,那么就相当于,外层循环1-99,里层循环100-9999;7254 是一个不寻常的数,因为:39 × 186 = 7254 这个算式的乘数,被乘数和乘积组成了一个1到 9 的 pandigital 组合。这个题目要求的是通过两个数的成绩得到一个数,然后这三个数的每一位可以凑成1-9的数字,这就是题目要求的数,然后求的他们的和;现在知道的求的3个数的位数一共有9位,那么现在就去判断开始和上届;1位数去乘以4位数可以得到4位数,原创 2023-08-11 09:53:21 · 106 阅读 · 0 评论 -
欧拉计划33
其实这个题,最主要的问题就是,如何能在代码上实现在纸上面的去如何约分,可以想一下约分的过程中就是去找到他们的最大公因子,然后上下同时除以最大公因子,那么如何找到最大公因子,那就是欧几里得算法,gcd(a,b) = d,d就是a和b的最大公因子;5.判断删除后满足分数的约分结果,删除后的分子分母交叉相乘未删除的分子分母相等说明约分成功;分别是上下个位相同,上下十位相同,分子的十位和分母个位相同,分子的个位和分母十位相同;那么就有两种情况分子的十位和分母个位相同,分子的个位和分母十位相同;原创 2023-08-12 14:54:32 · 78 阅读 · 0 评论 -
欧拉计划34题
找的方式一样 ,每位最大就是9!然后一个数有n位,那么他的阶乘和最大就位n * 9!,然后这个数为10^n最大, 然后通过二分法可以找到n为6.36几,那就取n=7,上界就为 10 ^ 7;这个题用枚举就可以进行找到,但是枚举范围是个问题;需要找到枚举上界是多少,这题找枚举上界的问题和。145 是一个奇怪的数字, 因为 1!= 1 + 24 + 120 = 145.= 2 不是和的形式,所以它们不算在内。找出所有等于各位数字阶乘之和的数字之和。最终答案:40730。原创 2023-08-13 15:16:18 · 104 阅读 · 0 评论 -
欧拉计划35题
现在的问题就是如何去循环得到所需要的循环数,其实很简单就是把这个数最后一位取出来然后对原先的数除以十,刚刚取出最后一位的数乘以这个数之前位数的10次方,然后加上刚才数除以十的结果;这个题目的是求一个数,将他每一最后一位移到最前面去,然后再去判断移动后的数是否为质数,当循环到与循环还开始时相等循环结束;100 以下有 13 个这样的质数: 2, 3, 5, 7, 11, 13, 17, 31, 37, 71, 73, 79, 和 97.然后这里需要用到线性筛进行来判断这个数是否为质数;原创 2023-08-14 10:12:21 · 83 阅读 · 0 评论 -
欧拉计划36题
这个问题主要就是判断一个数十进制和二进制是否是回文数,十进制很好判断,而二进制如何去判断,如何去把他的二进制倒过来;这里会用到位运算,将二进制的低位换到高位去,高位换到低位来;十进制数585=10010010012(二进制表示),因此它在这两种进制下都是回文数。然后再去判断n与之前的k是否相等,相等说明构成回文数;找出所有小于一百万,且在十进制和二进制下均回文的数,并求它们的和。k = k >> 1;(请注意,无论在哪种进制下,回文数均不考虑前导零。最终答案: 872187。原创 2023-08-15 09:39:51 · 101 阅读 · 0 评论 -
欧拉计划37题
其实方法很简单,先求到这个数的位数,然后用10的位数的次饭去求得最高位然后再减去最高位就可以实现从左往右逐一截去数字;而从右往左就很简单除10就可以了;3797有着奇特的性质。如果从左往右逐一截去数字,剩下的仍然都是素数:3797、797、97和7;如果从右往左逐一截去数字,剩下的也仍然都是素数:3797、379、37和3。如果一个素数满足,无论从左往右还是从右往左逐一截去数字,剩下的仍然都是素数,则称之为可截素数。已知总共有十一个可截素数,求这些数的和。注意:2、3、5和7不被视为可截素数。原创 2023-08-15 10:13:59 · 91 阅读 · 0 评论 -
欧拉计划38题
这个题目求,一个数n然后去乘以1-n(n>1),意思就是最少乘到2,然后得到的乘积乘1的乘积开始往后拼接,直到有9位,并且这9位包含了1-9全数字;5.枚举的上界是什么,因为最少乘到二,所以最高只能为4位数,因为为5位数的话,1乘以5位数有5位数,2乘以5位数还是有5位数,拼接起来就有10位数不能满足题目条件了;类似地,将9分别与1、2、3、4、5相乘,可以得到1至9全数字的数918273645,并称之为9和(1,2,3,4,5)的拼接乘积。,n)的拼接乘积,其中最大的1至9全数字的数是多少?原创 2023-08-16 09:56:50 · 177 阅读 · 0 评论 -
欧拉计划39题
floor函数向下取整,如果b等于他的向下取整说明b为整数,c = p -a -b,a是枚举的整数,那么c也一定是整数,说明找到了一个解。如果 p 是一个直角三角形的周长,三角形的三边长 {a, b, c} 都是整数。这个题求的是给出一个周长,求可以产生的直角三角形有多少个;2.那么b得到了就枚举a,那c如何取得到,通过勾股定理;3.如何取判断,b要创建为double类型,判断时,通过。对于 1000 以下的 p 中,哪一个能够产生最多的解?1.有周长,那么设三条边为a,b,c;,所以缩小了查找范围;原创 2023-08-16 10:39:16 · 115 阅读 · 0 评论 -
欧拉40题
直接用一个字符串来进行存储相应的数,从第一位开始;可以看出小数点后第12位数字是1。原创 2023-08-18 11:23:34 · 113 阅读 · 0 评论