自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(9)
  • 收藏
  • 关注

原创 交换一个整数在二进制表示下的奇偶位数

位运算的应用#include<iostream>using namespace std;/* 1111 &1010 =1010 1111 &0101 =0101 一个32位数(31-0) 和1010....与运算会保留奇数位得到x 和0101....与运算会保留偶数位得到y (x右移一位) 异或 (y左移一位) 得到交换后的结果 */int main(){ int a = 9; int b = a & 0Xaaaaa

2021-06-21 00:04:49 117

原创 一条语句判断数是不是2的整数次方

位运算的应用#include<iostream>using namespace std;//如果一个数的二进制表示只有1个1,他就是2的整数次方//x&(x-1)能消去二进制中的1个1,如果1次与运算结果为0,该数就是2的整数次方 int f(int n){ return (n&(n-1)) == 0 ? 1 : 0;}int main(){ cout << f(1024); return 0;}关于x&(x-1)的其他应用参.

2021-06-20 23:05:01 73

原创 统计一个数的二进制表示中1的个数

统计一个数的二进制表示中1的个数#include<iostream>using namespace std;//利用位运算// 1001 - 1 = 1000 1001&1000 = 1000 // 1000 - 1 = 0111 1000&0111 = 0000 // 每次减一会把低位的1变0,低位1后的0变1//如果拿1001和1000做与运算,会消掉一个1//即 x&(x-1)会消掉一个1,一直到结果为0,循环次数即为1的个数//int型整数

2021-06-20 22:53:42 114

原创 素数的筛选

一、使用数组存储素数此方法速度较快,但在判定一个数是不是素数之前要搜索p素数表。#include <iostream>using namespace std;#include <math.h>const int N = 100000;int isp(int k, int *p){ int r = 1, i, s; s = sqrt(k); ...

2019-08-22 17:15:31 162

原创 走迷宫(深度优先搜索版)

#include<iostream>using namespace std;int a[50][50], book[50][50], n, m, p, q;//定义全局变量,二维数组a用来保存n行m列的迷宫,book数组用来标记。//p,q为目的地坐标,min记录最小步数 void dfs(int x, int y, int step); //dfs函数用来解决当前步该怎...

2019-08-13 15:33:19 152

原创 多位数的排列

本篇使用搜索标记的办法,较快地输出一个多位数的排列。执行代码:#include<iostream>using namespace std;void Dfs(int star, int step, int *a, bool *b); //从star开始到step的全排列 int main(){ bool b[10] = {false}; //数组b用来记录已经选过的...

2019-08-08 19:11:02 379

原创 排序算法

在计算机编程中,排序算法作为比较常用的算法,在许多程序中都会用到,本篇会介绍一些常用的排序算法,以升序为例,比较研究不同排序算法的优劣,对于较慢的算法,仅给出冒泡排序为例,主要介绍几种速度较快的算法。一、时间复杂度为o(n²)的排序1、冒泡排序(稳定)算法步骤:(1)从待排序列第一个元素开始,前一个元素依次与后一个元素比较大小,若前者大,则二者交换,一次循环结束,可将...

2019-08-05 16:04:46 152

原创 动态规划(选值凑数)

问题描述 :给定一组数(如:3, 34, 4, 12, 5, 2)和S(如:9),若能从所给的数中,选出若干个数使它们的和为S,则输出1,否则输出0。问题分析:此题显然是动态规划问题,后一个数字选不选与前面的数字和s有关。因此可确定状态转移方程,当后一个数字选的时候,前面的选数字要能凑成s减去这个数字,当这个数字不选的时候,就需要前面选的数字能凑成s,确定好状态转移方程后,可以有递归...

2019-08-02 14:02:21 2938

原创 高精度加法计算(C++版)

在一些数据位数较大的加法计算中,编译器提供的数据类型往往不能满足要求的精度,因此,我们可以使用数组来保存来保存该数的每一位,模拟加法的相加进位运算。假设整数a,b不超过100位,以下程序能模拟整数a,b相加。输入2行,依次为a,b两整数,输出a+b的值。#include<iostream>using namespace std;void re(string &a,...

2019-07-19 22:39:44 313

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除