c语言(七)

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
int p1(int n){
//an = an-1 + an-2
if (n == 0){
return 1;
}
return p1(n - 1) + p1(n - 2);
}
int p2(int k, int n){
//a(n) = k * a(n-1) ; a(1) = k;
if (n == 1){
return k;
}
return k * p2(k, n - 1);//入递归利用
}
int p3(int n){
if (n == 0){
return 0;
}
return n % 10 + p3 (n/ 10);
}
int p5_d(char * str){//递归版本p5
if (*str){
return 1 + p5_d(str + 1);
}
return 0;
}
int p5(char * str){
int i;
for (i = 0; str[i]; i++);//字符串遍历
return i;
}
void p4(char * str){
int end = p5_d(str) - 1;
char tmp = str[0];
if (str[0]){
str[0] = str[end];
str[end] = ‘\0’;
p4(str);
str[end] = tmp;
}

}
int p6(int n){
//a(n) = n * a(n-1) ; a(1) = 1
if (n == 1){
return 1;
}
return n * p6(n-1) ;
}
void p7(int n,int i){
if (n){
p7(n / i,i);
printf("%d ",n % i);//出递归利用
putchar(“0123456789ABCDEF”[n % i]);

}

}
int main(){
//p1 斐波那契数列
printf("%d", p1(4));
//p2 n的k次方
printf("%d\n",p2(3,2));
//p3 输出一个数的每个位上的数 并求和
printf("%d\n",p3(123));
//p4 将字符串字符反向排序 只传一个变量
char a[5] = “qwer”;
p4(a);
printf("%s\n", a);
//p5 输出字符串长度
int s = p5(“aaaaa”);
//p5_d 输出字符串长度
int p = p5_d(“ss”);
//p6 n!
printf("%d\n", p6(5));
//p7 输出一个数的每个位上的数
p7(1729, 10);
system(“pause”);
return 0;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值