<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Ehell的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/Ehell</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; Ehell]]></copyright><item><title><![CDATA[蓝桥杯算法提高VIP-欧拉函数（C语言）]]></title><link>https://blog.youkuaiyun.com/Ehell/article/details/151653317</link><guid>https://blog.youkuaiyun.com/Ehell/article/details/151653317</guid><author>Ehell</author><pubDate>Sat, 13 Sep 2025 16:35:23 +0800</pubDate><description><![CDATA[首先我们对n进行质因数分解，不妨设n=p1^a1  *  p2^a2  *  ...  *  pk^ak  （这里a^b表示a的b次幂，p1到pk为k个互不相同的质数，a1到ak均为正整数），那么。欧拉函数phi(n)是数论中非常重要的一个函数，其表示1到n-1之间，与n互质的数的个数。显然的，我们可以通过定义直接计算phi(n)。计算的时候小心中间计算结果超过int类型上界，可通过调整公式各项的计算顺序避免(比如先做除法)!给定一个大于1，不超过2000000的正整数n，输出欧拉函数，phi(n)的值。]]></description><category></category></item><item><title><![CDATA[蓝桥杯算法提高VIP-Torry的困惑(提高型C语言)]]></title><link>https://blog.youkuaiyun.com/Ehell/article/details/150772508</link><guid>https://blog.youkuaiyun.com/Ehell/article/details/150772508</guid><author>Ehell</author><pubDate>Mon, 25 Aug 2025 16:29:26 +0800</pubDate><description><![CDATA[一天，老师告诉他，  像2、3、5、7……Torry突然想到一个问题，前10、100、1000、10000？个质数的乘积是多少呢。老师愣住了，一时回答不出来。于是Torry求助于会编程的你，请你算出前n个质数的乘积。不过，考虑到你才接触编程不久，Torry只要你算出这  个数模上50000的值。因为是计算第n个质数，所以设循环从质数个数开始数，直到数量等于n。考虑到质数的大小，用long long来设置质数变量。仅包含一个正整数n，其中n< =100000。输出一行，即前n个质数的乘积模50000的值。]]></description><category></category></item><item><title><![CDATA[蓝桥杯算法提高VIP-打水问题（C语言）]]></title><link>https://blog.youkuaiyun.com/Ehell/article/details/150702058</link><guid>https://blog.youkuaiyun.com/Ehell/article/details/150702058</guid><author>Ehell</author><pubDate>Sun, 24 Aug 2025 15:50:32 +0800</pubDate><description><![CDATA[例如样例中，Ti从小到大排序为1，2，3，4，5，6，7，将他们依次分配到3个龙头，则去龙头一打水的为1，4，7；N个人要打水，有M个水龙头，第i个人打水所需时间为Ti，请安排一个合理的方案使得所有人的等待时间之和尽量小。设置两个数组，一个是打水人数，一个是水龙头数，将打水人安排到空闲的水龙头处，计算每人的等待时间。因为是按照从小到大的顺序去打水，所以先去的人一定先打完，把人按照从先到后的顺序去分配水龙头就行。因为当前等待时间是之前所有人的打水时间，所以在每人打水前就要记录下等待时间，直到最后来到的人。]]></description><category></category></item><item><title><![CDATA[蓝桥杯基础练习VIP-完美的代价（C语言）]]></title><link>https://blog.youkuaiyun.com/Ehell/article/details/150641223</link><guid>https://blog.youkuaiyun.com/Ehell/article/details/150641223</guid><author>Ehell</author><pubDate>Sat, 23 Aug 2025 15:14:49 +0800</pubDate><description><![CDATA[遇到单独字符时可以用公式计算移动次数，计算从此处到中心处的移动次数（因为相同字符是向右交换的，所以单独的字符会被挤到左边去，直接减去就行），如果此时字符串是偶数个或者有多个单独的字符，就输出Impossible。从左边开始定位，记录当前元素，再从右边开始找到相同元素，移动到与左边对应的位置，这样边缘的元素就对应完成，接着查找下一个元素，将所有移动次数记录下来然后输出。现在给你一个串，它不一定是回文的，请你计算最少的交换次数使得该串变成一个完美的回文串。交换的定义是：交换两个相邻的字符。]]></description><category></category></item><item><title><![CDATA[蓝桥杯2013年第四届真题-错误票据（C语言）]]></title><link>https://blog.youkuaiyun.com/Ehell/article/details/150612225</link><guid>https://blog.youkuaiyun.com/Ehell/article/details/150612225</guid><author>Ehell</author><pubDate>Fri, 22 Aug 2025 15:54:28 +0800</pubDate><description><![CDATA[每行数据长度不等，是用空格分开的若干个（不大于100个）正整数（不大于100000），请注意行内和行末可能有多余的空格，你的程序需要能处理这些空格。将数据记录在字符串数组中，再将数据按空格为界依次提取，记录到新的数组中，最后将数组按顺序排列，找出缺失的数字与重复的数字输出。因为工作人员疏忽，在录入ID号的时候发生了一处错误，造成了某个ID断号，另外一个ID重号。全年所有票据的ID号是连续的，但ID的开始数码是随机选定的。你的任务是通过编程，找出断号的ID和重号的ID。其中，m表示断号ID，n表示重号ID。]]></description><category></category></item><item><title><![CDATA[蓝桥杯算法提高VIP-不同单词个数统计（C语言）]]></title><link>https://blog.youkuaiyun.com/Ehell/article/details/150584855</link><guid>https://blog.youkuaiyun.com/Ehell/article/details/150584855</guid><author>Ehell</author><pubDate>Thu, 21 Aug 2025 15:53:17 +0800</pubDate><description><![CDATA[编写一个程序，输入一个句子，然后统计出这个句子当中不同的单词个数。例如：对于句子“one  little  two  little  three  little  boys”，总共有5个不同的单词：one,  little,  two,  three,  boys。先读入句子，从头开始循环，将读到的单词记录下来，将当前单词与列表内进行比较，如果出现过就清除单词，记录下一个；如果没出现就将当前单词加入单词列表中，再记录新单词，最终输出列表单词数。输出只有一行，是一个整数，表示句子中不同单词的个数。]]></description><category></category></item><item><title><![CDATA[蓝桥杯算法提高VIP-寻找三位数（C语言）]]></title><link>https://blog.youkuaiyun.com/Ehell/article/details/150557867</link><guid>https://blog.youkuaiyun.com/Ehell/article/details/150557867</guid><author>Ehell</author><pubDate>Wed, 20 Aug 2025 17:01:36 +0800</pubDate><description><![CDATA[三位数最小的是123，最大是987，所以对第一个数设循环，从123到987/3，将元素乘2和3得到三个三位数，接着判断三个三位数是否由9个数组成，得到结果输出。判断时可以设个初始为0的数组，以三位数每一位作为下标对应的元素+1，最后判断下标1~9的元素是否全为1。，9共9个数分成三组，分别组成三个三位数，且使这三个三位数构成。输出每行有三个数，为满足题设三位数。各行为满足要求的不同解。例如：三个三位数192，384，576满足以上条件。1：2：3的比例，试求出所有满足条件的三个三位数。]]></description><category></category></item><item><title><![CDATA[蓝桥杯算法提高VIP-任意年月日历输出（C语言）]]></title><link>https://blog.youkuaiyun.com/Ehell/article/details/150527862</link><guid>https://blog.youkuaiyun.com/Ehell/article/details/150527862</guid><author>Ehell</author><pubDate>Tue, 19 Aug 2025 16:00:49 +0800</pubDate><description><![CDATA[先计算闰年，计算过去几年几月的天数与7求余得到这个月的星期，再从这天开始输出日历，到了星期六就换下一行。设计一函数按照下述格式打印2007年以后（含）某年某月的日历，2007年以前的拒绝打印。为完成此函数，设计必要的辅助函数可能也是必要的。其中输入为年分和月份。注意：短线“-”个数要与题目中一致，否则系统会判为错误。已知2007年1月1日为星期一。]]></description><category></category></item><item><title><![CDATA[蓝桥杯基础练习VIP-高精度加法（C语言）]]></title><link>https://blog.youkuaiyun.com/Ehell/article/details/150494334</link><guid>https://blog.youkuaiyun.com/Ehell/article/details/150494334</guid><author>Ehell</author><pubDate>Mon, 18 Aug 2025 15:55:07 +0800</pubDate><description><![CDATA[计算c  =  a  +  b的时候，首先将A[0]与B[0]相加，如果有进位产生，则把进位（即和的十位数）存入r，把和的个位数存入C[0]，即C[0]等于(A[0]+B[0])%10。然后计算A[1]与B[1]相加，这时还应将低位进上来的值r也加起来，即C[1]应该是A[1]、B[1]和r三个数的和．如果又有进位产生，则仍可将新的进位存入到r中，和的个位存到C[1]中。定义一个数组A，A[0]用于存储a的个位，A[1]用于存储a的十位，依此类推。输入两个整数a和b，输出这两个整数的和。]]></description><category></category></item><item><title><![CDATA[蓝桥杯基础练习VIP-阶乘计算（C语言）]]></title><link>https://blog.youkuaiyun.com/Ehell/article/details/150469677</link><guid>https://blog.youkuaiyun.com/Ehell/article/details/150469677</guid><author>Ehell</author><pubDate>Sun, 17 Aug 2025 17:26:58 +0800</pubDate><description><![CDATA[设立递归函数，将乘数与高精度数组每一位相乘，得到结果的个位保留在数组内，超出个位的部分存储起来，加入到下一位的计算中，计算完毕后递归到下一位乘数，最终返回数组位数。使用一个数组A来表示一个大整数a，A[0]表示a的个位，A[1]表示a的十位，依次类推。我的函数内将乘数按位数分成了数组，再分别计算，其实不用这一步，将乘数直接与高精度数相乘就可以，在计算的范围内，而且简单方便。用递归的方法将n的阶乘的每个数字相乘，用高精度计算得到带有结果的数组。首先将a设为1，然后乘2，乘3，当乘到n时，即得到了n!]]></description><category></category></item><item><title><![CDATA[蓝桥杯基础练习VIP-回形取数（C语言）]]></title><link>https://blog.youkuaiyun.com/Ehell/article/details/150448298</link><guid>https://blog.youkuaiyun.com/Ehell/article/details/150448298</guid><author>Ehell</author><pubDate>Sat, 16 Aug 2025 16:29:01 +0800</pubDate><description><![CDATA[判断数据是否用过可以再设一个数组，用来记录下一步的数据是否被用过，如果用过就转向，如果转向后的数据还是被取用了就退出。回形取数就是沿矩阵的边取数，若当前方向上无数可取或已经取过，则左转90度。输入第一行是两个不超过200的正整数m,  n，表示矩阵的行和列。输出只有一行，共mn个数，为输入矩阵回形取数得到的结果。数之间用一个空格分隔，行末不要有多余的空格。在边缘时根据路径朝向判断下一步是否超出范围，如果下一步超出矩阵范围就转向。结尾不能有空格，将第一个元素单独输出，之后输出元素在前面添加空格就行。]]></description><category></category></item><item><title><![CDATA[蓝桥杯基础练习VIP-矩阵乘法（C语言）]]></title><link>https://blog.youkuaiyun.com/Ehell/article/details/150426314</link><guid>https://blog.youkuaiyun.com/Ehell/article/details/150426314</guid><author>Ehell</author><pubDate>Fri, 15 Aug 2025 16:42:04 +0800</pubDate><description><![CDATA[设立两个矩阵分别记录矩阵A和多次幂的矩阵，将两矩阵相乘后的结果存到新的矩阵中，再复制到多次幂矩阵中，多次幂矩阵初始为单位矩阵。设要得到的目标矩阵元素位置(i,j)，则将两矩阵的i行所有元素与j列所有元素相乘后相加，得到目标位置的元素。第一行是一个正整数N、M（1< =N< =30,  0< =M< =5），表示矩阵A的阶数和要求的幂数。输出共N行，每行N个整数，表示A的M次幂所对应的矩阵。接下来N行，每行N个绝对值不超过10的非负整数，描述矩阵A的值。给定一个N阶矩阵A，输出A的M次幂（M是非负整数）]]></description><category></category></item><item><title><![CDATA[蓝桥杯基础练习VIP-FJ的字符串（C语言）]]></title><link>https://blog.youkuaiyun.com/Ehell/article/details/150396007</link><guid>https://blog.youkuaiyun.com/Ehell/article/details/150396007</guid><author>Ehell</author><pubDate>Thu, 14 Aug 2025 17:29:49 +0800</pubDate><description><![CDATA[寻找规律，当前字符串组成是上一字符串加上第i个大写字母再接上一个字符串，用字符串的复制和衔接来完成。请输出相应的字符串AN，以一个换行符结束。输出中不得含有多余的空格或换行、回车符。你能找出其中的规律并写所有的数列AN吗？仅有一个数：N  ≤  26。]]></description><category></category></item><item><title><![CDATA[蓝桥杯2013年第四届真题-幸运数（C语言）]]></title><link>https://blog.youkuaiyun.com/Ehell/article/details/150349124</link><guid>https://blog.youkuaiyun.com/Ehell/article/details/150349124</guid><author>Ehell</author><pubDate>Wed, 13 Aug 2025 16:22:38 +0800</pubDate><description><![CDATA[这时，3为第2个幸运数，然后把所有能被3整除的序号位置的数删去。注意，是序号位置，不是那个数本身能否被3整除!删除的应该是5，11,  17,  ...此时7为第3个幸运数，然后再删去序号位置能被7整除的(19,39,...)先设一个自然数数组，再从头开始减去对应的幸运数和他的倍数的下标，组成新的数组。幸运数是波兰数学家乌拉姆命名的。程序输出  位于m和n之间的幸运数的个数（不包含m和n）。当这次的幸运数在m和n之间时就增加数字，减到n时记录数字个数。首先从1开始写出自然数1,2,3,4,5,6,....]]></description><category></category></item><item><title><![CDATA[整除的尾数（C语言）]]></title><link>https://blog.youkuaiyun.com/Ehell/article/details/150202580</link><guid>https://blog.youkuaiyun.com/Ehell/article/details/150202580</guid><author>Ehell</author><pubDate>Tue, 12 Aug 2025 17:08:11 +0800</pubDate><description><![CDATA[题目描述一个整数，只知道前几位，不知道末二位，被另一个整数除尽了，那么该数的末二位该是什么呢输入格式输入数据有若干组，每组数据包含二个整数a，b（0＜a＜10000, 10＜b＜100），若遇到0 0则处理结束输出格式对应每组数据，将满足条件的所有尾数在一行内输出，格式见样本输出。同组数据的输出，其每个尾数之间空一格，行末没有空格。样例输入200 401992 950 0样例输出00 40 8015。]]></description><category></category></item><item><title><![CDATA[蓝桥杯历届试题-蚂蚁感冒（C语言）]]></title><link>https://blog.youkuaiyun.com/Ehell/article/details/150229520</link><guid>https://blog.youkuaiyun.com/Ehell/article/details/150229520</guid><author>Ehell</author><pubDate>Mon, 11 Aug 2025 22:42:26 +0800</pubDate><description><![CDATA[定位感冒的蚂蚁的数量，然后找到前进方向上所有反方向行走的蚂蚁数量，就是被感染的蚂蚁数量，先找前进方向上的蚂蚁，如果没有蚂蚁发生碰撞，就只有这一只感染，如果有碰撞，则此蚂蚁掉头，再去找后面反方向前进的蚂蚁。因为蚂蚁速度相同，所以前面的蚂蚁不会被后面追上，又因为蚂蚁碰头后向后转，所以向左向右的蚂蚁数量是不变的，只要看总的蚂蚁数就行。因为所有的速度相同，所以后方的蚂蚁一定是由最初的蚂蚁感染的，最开始我没考虑到这一点，一直在找最边缘的蚂蚁，实际上根本没意义。它们的头有的朝左，有的朝右。]]></description><category></category></item><item><title><![CDATA[蓝桥杯历届试题-翻硬币（C语言）]]></title><link>https://blog.youkuaiyun.com/Ehell/article/details/150149047</link><guid>https://blog.youkuaiyun.com/Ehell/article/details/150149047</guid><author>Ehell</author><pubDate>Sun, 10 Aug 2025 16:09:28 +0800</pubDate><description><![CDATA[现在小明的问题是：如果已知了初始状态和要达到的目标状态，每次只能同时翻转相邻的两个硬币,那么对特定的局面，最少要翻动多少次呢？桌上放着排成一排的若干硬币。我们用  *  表示正面，用  o  表示反面（是小写字母，不是零）。先输入两字符串，再将元素不同的位置翻硬币，因为下一个元素也会被翻，所以依次执行就行。两行等长的字符串，分别表示初始状态和要达到的目标状态。如果同时翻转左边的两个硬币，则变为：oooo***oooo。我们约定：把翻动相邻的两个硬币叫做一步操作。比如，可能情形是：**oo***oooo。]]></description><category></category></item><item><title><![CDATA[蓝桥杯历届试题-数字游戏（C语言）]]></title><link>https://blog.youkuaiyun.com/Ehell/article/details/150110872</link><guid>https://blog.youkuaiyun.com/Ehell/article/details/150110872</guid><author>Ehell</author><pubDate>Sat, 09 Aug 2025 16:34:38 +0800</pubDate><description><![CDATA[接下来，坐在栋栋左手边的同学要说下一个数字2。再下面的一个同学要从上一个同学说的数字往下数两个数说出来，也就是说4。为了使数字不至于太大，栋栋和同学们约定，当在心中数到  k-1  时，下一个数字从0开始数。输入的第一行包含三个整数  n,k,T，其中  n  和  k  的意义如上面所述，T  表示到目前为止栋栋一共说出的数字个数。游戏进行了一会儿，栋栋想知道，到目前为止，他所有说出的数字的总和是多少。输出一行，包含一个整数，表示栋栋说出所有数的和。栋栋说出的数依次为1,  7,  9，和为17。]]></description><category></category></item><item><title><![CDATA[DNA（C语言）]]></title><link>https://blog.youkuaiyun.com/Ehell/article/details/150069995</link><guid>https://blog.youkuaiyun.com/Ehell/article/details/150069995</guid><author>Ehell</author><pubDate>Fri, 08 Aug 2025 16:44:50 +0800</pubDate><description><![CDATA[小强从小就喜欢生命科学，他总是好奇花草鸟兽从哪里来的。终于， 小强上中学了，接触到了神圣的名词--DNA.它有一个双螺旋的结构。这让一根筋的小强抓破头皮，“要是能画出来就好了” 小强喊道。输入包含多组测试数据。第一个整数N（N<=15）,N表示组数，每组数据包含两个整数a,b。a表示一个单位的DNA串的行数，a为奇数且 3<=a<=39。b表示重复度(1<=b<=20)。有多段DNA，设立函数单独输出每一段DNA，将其衔接，底部另外补齐。输出DNA的形状，每组输出间有一空行。]]></description><category></category></item><item><title><![CDATA[蓝桥杯2025年第十六届省赛真题-冷热数据队列（C语言）]]></title><link>https://blog.youkuaiyun.com/Ehell/article/details/150017651</link><guid>https://blog.youkuaiyun.com/Ehell/article/details/150017651</guid><author>Ehell</author><pubDate>Thu, 07 Aug 2025 17:35:34 +0800</pubDate><description><![CDATA[1）若 p 不在队列 q 中（即既不在 q1 中，也不在 q2 中），则加载数据页 p ，并插入到 q2 的首部。对于所有评测用例，1 ≤ n1, n2 ≤ 104 ，1 ≤ m ≤ 105 ，0 ≤ vi ≤ 104。对于 60% 的评测用例，1 ≤ n1, n2 ≤ 100 ，1 ≤ m ≤ 1000；对于 40% 的评测用例，1 ≤ n1, n2 ≤ 20 ，1 ≤ m ≤ 100；对于 20% 的评测用例，1 ≤ n1, n2 ≤ 10 ，1 ≤ m ≤ 10；【评测用例规模与约定】]]></description><category></category></item></channel></rss>