perm1()函数中定义一个静态变量用于计数,调用该函数的时候计数器自增。显示函数多传入一个排列序号。如下所示:
成都创新互联公司-专业网站定制、快速模板网站建设、高性价比公主岭网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式公主岭网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖公主岭地区。费用合理售后完善,10年实体公司更值得信赖。
void perm1(int *p,int n,int m)
{
void swap(int *data1,int *data2);
void output(int index,int *p,int n); //多传入一个排列序号
static s_cnt = 0;//计数器
int i;
s_cnt++;//计数器自增
if(m==(n-1)){
output(s_cnt,p,n);
}
else{
for(i=m;in;i++){
swap(p[i],p[m]);
perm1(p,n,m+1);
swap(p[i],p[m]);
}
}
}
void output(int index,int *p,int n)
{
printf("------------------\n");
printf("Index: %d", index);//显示序号
//printf("time=%d\n",m);
int i;
for(i=0;in;i++){
printf("p[%d]=%d\n",i,p[i]);
}
}
#include stdio.h
#include stdlib.h
int count=0;
int fun(int x,int n)
{
count++;
if(n==2)
{
return x*x;
}
else if(n%2==0)
{
return fun(x,n/2)*fun(x,n/2);
}
else if(n%2==1)
{
return fun(x,n-1)*x;
}
}
int main(int argc, char *argv[]) {
int sum=0,x,n;
printf("请输入x n的值(两数之间用空格间隔):");
scanf("%d %d",x,n);
sum=fun(x,n);
printf("%d 递归调用了%d次",sum,count);
return 0;
}
#includestdio.h//不懂可追问,已经测试过。
int output(int k,int c)
{
if(k/c0)
printf("%d\n",k/c);
if(c==1)
return 1;
else
output(k%c,c/10);
}
int main()
{
int k;
int c=1000000000;//没有交代数据范围,根据int类型定义了。
scanf("%d",k);
output(k,c);
getchar();
getchar();
return 0;
}
递归次数,设一个全局变量计数就可以了
int count = 0;
在move中添加 count++;