通常我们交换两个值,都是用一个临时的变量temp,拿交换a,b的值为例,通常的做法是: temp = a; a = b; b = temp; 不过利用位运算,真的是方便很多: ?假如 a = 3,b = 4。想将a和b的值互换,可以用一下赋值语句实...
分类:
其他好文 时间:
2014-09-28 19:03:46
阅读次数:
198
我们都知道,如果在一个函数调用另一个函数,假设是 main 函数调用 fun 函数,这个 fun 函数返回一个临时类类型变量,那么这个时候编译器就会在 main 函数申请一个空间并生成一个临时对象,通过拷贝构造函数将 fun 返回的临时变量的值拷贝到这个临时对象。我们看如下的代码:#include ...
分类:
其他好文 时间:
2014-09-25 01:13:18
阅读次数:
382
给定一个数组a[N],我们希望构造数组b[N],其中b[i]=a[0]*a[1]*...*a[N-1]/a[i]。在构造过程要求满足:1、不使用除法;2、O(1)空间复杂度和O(n)时间复杂度;3、除遍历a[N]b[N]使用的计数器外,不使用任何新的变量(包括栈临时变量、对空间和全局静态变量等);/...
分类:
其他好文 时间:
2014-09-24 22:07:47
阅读次数:
204
1 #include 2 using namespace std; 3 4 5 void swap(int& x,int& y) 6 { 7 y = x + y; 8 x = y - x; 9 y = y - x;10 }11 12 int _tmain(int ar...
分类:
其他好文 时间:
2014-09-24 14:18:37
阅读次数:
175
给定一个数组a[N],我们希望构造数组b[N],其中b[i]=a[0]*a[1]*...*a[N-1]/a[i]。
在构造过程:
1不允许使用除法;
2要求O(1)空间复杂度和O(n)时间复杂度;
3除遍历计数器与a[N] b[N]外,不可使用新的变量(包括栈临时变量、对空间和全局静态变量等);...
分类:
其他好文 时间:
2014-09-23 13:02:44
阅读次数:
210
在C++中,交换两变量的值一般第一反应都会是如下的代码:
{
temp=a;
a=b;
b=temp
}
但是题目要求不允许使用临时变量temp呢?可能就需要想一会了。但也有解决办法:
{
b=a+b;
a=b-a;
b=b-a;
}
这种做法在a和b数值较小的情况下是对的,但是a+b如果很大则会溢出,所以也不是最优的解法。最好的方法是使用异或:
{
a ^= b...
分类:
编程语言 时间:
2014-09-21 17:10:00
阅读次数:
330
其中,将洞穴连起来的算法要好好体会。学习构建临时变量列表,确认循环用FOR,非确定循环用 WHILE,并定好退出条件。from random import choicecave_numbers = range(0,20)caves = []for i in cave_numbers: cave...
分类:
其他好文 时间:
2014-09-21 00:04:59
阅读次数:
431
C++中新增了引用类型,所以函数的返回值可以是引用类型。那么就会有人想问 返回引用类型与返回非引用类型有区别吗?结论是显然的,而且有明显的区别。尤其初学者会很容易绕进去。让我们先看四个函数原型。以int类型来举例(1) int fun(...) { return ....//后面跟的是一个引用 }例...
分类:
编程语言 时间:
2014-09-18 23:32:14
阅读次数:
675
一年前写管理学院的时候,那时候做首页有一个幻灯片,由于之前没交流好,CL写的静态页面幻灯片图片是在背景里,让我用jq写, 当时就感觉特别啃爹,图片写在了css里。。好坑爹,自己又懒得改,只能硬着头皮用jq写,一堆临时变量,如num++,各种奇葩,最后加了 个jq淡隐淡出的效果,就交差了,,代码如下:...
分类:
编程语言 时间:
2014-09-11 17:23:22
阅读次数:
281
按位异或运算可以在不引入临时变量的情况下实现两个变量值得互换。intmain()
{
inta=10;
intb=12;
cout<<"a="<<a<<";"<<"b="<<b<<endl;
a=a^b;//异或运算
b=a^b;
a=b^a;
cout<<"a="<<a<<";"<<"b="<<b<..
分类:
其他好文 时间:
2014-09-10 02:56:41
阅读次数:
186