本文介绍三种方法:1.循环计数法,(设置一个计数器)。2.递归法,(函数调用自身进行计算)3.指针-指针法,(库函数使用的是此方法)现在列入程序:方法1:/*
计数法
*/
intmy_strlen(char*p)
{
intnumber=0;
while(*p)
{
number++;
p++;
}
returnnumber;
}方法2:/*..
分类:
编程语言 时间:
2015-11-14 23:39:21
阅读次数:
859
题意: 给出n个元素,请产生出所有的全排列。思路: 注意到可能会有相同的排列出现,比如 {2,2}。还有可能是乱序列(大部分情况下都是无所谓的)。 递归法: 1 class Solution { 2 public: 3 void recursion(vector num, int i,...
分类:
其他好文 时间:
2015-11-02 23:01:38
阅读次数:
270
//第一种方法:递归法
#include<stdio.h>
intreverse_string(char*string)
{
if(*string!=‘\0‘)
{
reverse_string(string+1);
printf("%c",*string);
}
}
intmain()
{
char*string="abcde";
printf("源字符串为:%s\n",string);
printf("反向排列后为:");
reverse_strin..
分类:
编程语言 时间:
2015-10-26 18:51:19
阅读次数:
247
对于两个整数x,y,求其最大公约数(语言:C,C++)原理:辗转除法求最大公约数:就是不断的用除数去除以余数,直到余数为0 ,最终得到的除数就是该两个数的最大公约数1.递归法:intgcd(int x,int y){intresult;if(y==0)result=x;elseresult=gcd(...
分类:
其他好文 时间:
2015-10-13 21:02:50
阅读次数:
194
非递归法:#include<stdio.h>
#include<stdlib.h>
#definenumber6
intbinsearch(intx,int*arr,intleft,intright);
intmain()
{
intx=0,inter=0;
intarr[number]={1,5,12,36,45,98};
/*
*printf("请输入可查找到的数:>");
*for(inti=0;i<sizeof(arr)/si..
分类:
编程语言 时间:
2015-10-13 01:45:11
阅读次数:
204
用递归法将一个整数n转换成字符串。例如,输入483,应输出字符串“483”。n的位数不确定,可以是任意位数的整数。
#include "stdafx.h"
#include
using namespace std;
void s(int n)
{
int i;
if((i=n/10)!=0) s(i); //如果个位以上还有高位,则再次调用函数s
put...
分类:
其他好文 时间:
2015-08-18 19:28:49
阅读次数:
100
/**
* 功能:给你一堆n个箱子,箱子宽wi,高hi,深di。箱子不能翻转,将箱子堆起来时,下面箱子的宽度、高度和深度必须大于上面的箱子。
* 实现方法:搭出最高的一堆箱子,箱子堆的高度为每个箱子高度的总和。
*/
两种方法:
方法一:递归发
//递归法
public static ArrayList createStackR(Box[] boxes,Box bot...
分类:
其他好文 时间:
2015-08-14 15:48:07
阅读次数:
108
/**
* 功能:有个小孩正在上楼梯,楼梯有n阶台阶,小孩一次可以上1阶、2阶或3阶。计算小孩上楼梯的方式有多少种。
*/
两种方法:
方法一:
//递归法
/**
* 思路:自上而下的方式。
* 最后一步可能是从第n-1阶往上走1阶、从第n-2阶往上走2阶或从第n-3阶往上走3阶。
* 因此,抵达最后一阶的走法,抵达这最后三阶的方式的综合。
* ...
分类:
其他好文 时间:
2015-08-08 18:16:50
阅读次数:
2006
1 . 欧几里得算法(递归法球两个数的最大公约数) 算法比较简单就直接贴代码了: int gcd(int a , int b){ return b ==0 ? a : gcd(b , a%b); } 在这个算法的基础上可以该进,gcd(a*n , ...
分类:
编程语言 时间:
2015-08-08 11:47:15
阅读次数:
137
//递归法
/*
==================================================================
题目:求F(60),其中F(n)定义如下:
F(0)=0;
F(1)=1;
F(2n)=f(n)+3;
F(2n+1)=F(n)+F(2n-1).
==========================================...
分类:
编程语言 时间:
2015-08-02 01:01:28
阅读次数:
136