1.利用数据源的特点,例如首位,空位等,暂时当临时变量使用。
2.如果需要中间变量做标志,可以考虑将数据源改变符号等针对数据源特点让数据源暂时做标志。
例如:数据源都是正数,那么取反就是一种标志。
3.利用递归,递归是开辟隐式存储空间。
例如:
unsigned int mystrlen(const char *str)
{
if (str==NULL) return 0;
if (*str != 0)
return mystrlen(++str) + 1;
else
return 0;
}
递归
出递归后+1
4.利用数学公式
例如:自然数求和公式
#1 Sn = n * (n + 1) / 2
#2 Smn=(n+m)(n-m+1)/2
5.异或交换、加减交换
void swap(int &a,int &b)
{
if(a==b) return; //当传入的a和b是同一个数(&a==&b)时候会有缺陷
}