刷题
菜鸟学编程o
博客为个人学习记录
展开
-
C——找单身狗2
不过和单身狗1不一样的是,整个数组异或下来,会出现一个别的值,是由5^6得到的。这里我们找新得到的值的二进制位的1在哪里。注意,异或运算符是两个数的二进制位对应位相同结果为1,不同为0 ,可以用这点来将两个不同的数字分成两个不同的组,然后在分别异或每个组。如:1,2,3,4,5,1,2,3,4,6 5 和6都只出现了一次,找出5和6打印出来。在一个数组中,室友两个数字出现了一次,其他所有数字都出现了两次。3、将k位上为1的分为一组遍历异或,最后的值存储到p1或p2中。原创 2024-04-07 02:27:41 · 289 阅读 · 0 评论 -
C语言——找单身狗1
关键点就在于,Fund函数中遍历数组中的每一位成员,有两个相同的就会互相抵消为0,最后只会留下只有一个的数与0异或。例如:2 的二进制数为0010,3 的二进制数为0011,那么2^3 结果为 0001。任何数和0异或都为本身。在一个整形数组中,只有一个数字出现一次,其他数组都是成对出现的,找出那个只出现一次的数字。数组中:1,2,3,4,5,4,3,2,1,只有5出现一次,其他数字都出现2次。,如果两个数的二进制数相对应的位不同,结果为0,相同则为1。可以使用按位异或来解决。原创 2024-04-05 23:30:10 · 992 阅读 · 1 评论 -
牛客网BC93 公务员面试
如果要求多组输入的话,可以用scanf依次读取并判断最大值和最小值,还可以同时求和,减去最大值和最小值就行了。然后重置一下变量就又可以进行下一轮了。有7位考官,从键盘输入若干组成绩,每组7个分数(百分制),去掉一个最高分和一个最低分,输出每组的平均成绩。思路:可以创建一个数组然后输入数据,用冒泡对数据进行排列,根据数组下标去掉一个最大值和一个最小值,求和然后求平均值。每一行,输出去掉最高分和最低分的平均成绩,小数点后保留2位,每行输出后换行。每一行,输入7个整数(0~100),代表7个成绩,用空格分隔。原创 2024-01-12 08:00:00 · 495 阅读 · 1 评论 -
用户设置密码,再验证输入密码是否正确
用户设置密码以及验证密码原创 2023-12-02 09:04:49 · 434 阅读 · 0 评论 -
筛选N以内的素数
打印N以内的素数原创 2023-12-03 11:15:22 · 341 阅读 · 1 评论 -
【C语言】——二分查找
中间数是通过下标来查找的,比如1的下标是0,10的下标是9,(0+9)/2=4,那么中间数是5。比如要在一个arr数组中查找7,arr中的元素为1,2,3,4,5,6,7,8,9,10。二分查找又称折半查找,是指在一个有序数组中,将要查找的数和中间数的对比来进行折半。通过二分查找能极大的缩短查找时间,但是前提是一个有序数组,不然架不住脚。5是中间数比7小,左下标加1。8是中间数比7大,右下标减1。那么通过代码就是这样实现的。原创 2023-12-09 09:11:56 · 397 阅读 · 0 评论 -
最大公约数和最小公倍数
为了求出两个数的最⼩公倍数,可以采⽤枚举试除法。2. 从⼩到⼤依次判断能否同时整除这两个数,若某个数满⾜同时被两个数整除,则其为公倍数;2. 从⼤到⼩依次判断能否同时整除这两个数,若某个数满⾜同时整除两个数,则其为公约数;3. 从⼤到⼩遍历找到公约数时,此数即为最⼤公约数,此时应当结束循环。3. 从⼩到⼤遍历找到公倍数时,此数即为最⼩公倍数,此时应当结束循环;1. 具体来说,公约数⼀定⼩于两个数,从两个数中的较⼩值开始枚举;1. 具体来说,公倍数⼀定⼤于两个数,从两个数中的较⼤值开始枚举;原创 2023-12-11 18:54:23 · 347 阅读 · 1 评论 -
【C语言】——冒泡排序
冒泡排序是⼀种基础的排序算法,其基本思想是⽐较相邻的两个元素,如果它们的顺序错误就交换它们的位置,直到整个序列有序为止。1. 从序列的第⼀个元素开始,对相邻的两个元素进行比较,如果顺序错误就交换它们的位置,使较 小的元素排在前⾯,较⼤的元素排在后⾯。2. 在对序列中的所有相邻元素都进行了一次比较之后,第⼀轮排序结束,此时最后一个元素已经是 整个序列中最大的元素。• 特别地,若在某⼀轮排序中未进行交换操作,则当前序列已经是升序状态,可以结束排序。原创 2023-12-12 19:27:36 · 316 阅读 · 0 评论 -
1~100000的自幂数
自幂数是指一个数的位数的n次方等于这个数本身。例如,153就是自幂数,因为1^3+5^3+3^3=153.可以使用pow函数求的每个数的次方数,pow函数在头文件math.h中。我们可以使用循环遍历一个1~100000并检查每个数是否为自幂数。3、判断sum与i是否相等,相等则i是自幂数。2、计算i的每一位n次方之和sum。原创 2023-12-23 08:10:22 · 626 阅读 · 1 评论 -
for循环打印菱形
1、首先打印上半部分的菱形。需要注意的是,上半部分共有n行,第 i 行需要打印2*n+1个符号,而且这些符号需要居中对齐。为了实现居中对齐,我们可以在每一行的前面打印n-i个空格。具体来说,我们可以使用一个循环来遍历每一行,并使用另一个循环来打印空格和符号。2 * (n - i-1)-1个符号,同样需要居中对齐,并且需要在每一行的前面打印i+1个空格。2、接下来打印下半部分的菱形,。与上半部分类似,下半部分共有n-1行,第i行需要打印。题目描述:输入一个整数n,打印2*n-1行的菱形图案。原创 2023-12-27 23:07:27 · 498 阅读 · 1 评论 -
牛客网BC73——计算一元二次方程
要知道一元二次方程的求跟公式,以及怎样求🔺,🔺=b*b-4*a*c ,这里可以用一个pow函数来求平方。,即x1的虚部系数小于等于x2的虚部系数,实部为0时不可省略。实部= -b / (2*a),针对每组输入,输出一行,输出一元二次方程ax2 + bx +c = 0的根的情况。输出:x1=-0.50-1.50i;输出:x1=0.00-1.00i;虚部= sqrt( -🔺) / (2*a)输出:x1=-3.35;输出:x1=x2=-1.00。原创 2023-12-28 09:37:06 · 486 阅读 · 1 评论