不用strlen()求字符串长度和递归法

简介: 由键盘任意输入一个字符串,不用库函数strlen,求它的长度。

1.题目
由键盘任意输入一个字符串,不用库函数strlen,求它的长度。

2.思路
先定义一个字符数组用来装字符串,在用gets()获得字符串,定义一个int型count用来统计字符串长度,下面用for循环,从0开始,直到字符为'\0'结束,for循环里count++,数组的下标每往后去一个count就加一次,最后输出count

3.代码

#include "stdio.h"
 
int main() {
    char s[50];
    int count = 0;
    gets(s);
 
    for (int i = 0; s[i] != '\0'; i++) {
        count++;
    }
 
    printf("%s的长度为%d", s, count);
}

4.执行结果

image.png
递归法
1.说明
一个过程或函数在其定义或说明中有直接或间接调用自身的一种方法,当边界条件不满足时,递归前进;当边界条件满足时,递归返回。,它通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解。

2.基本思想
1.建立递推关系

2.确定初始(边界)条件

3.斐波那契数列
有雌雄一对兔子,假定过两个月便可繁殖雌雄各一的一对小兔子。问过n个月后共有多少对兔子?

4.思路
递推关系:Fx=Fx-1+Fx-2

Fx=Fx-1+Fx-2 结束条件:F1=1,F2=1

5.代码实现

#include "stdio.h"
int fun(int n);
 
int main() {
    int n;
    scanf("%d", &n);
    printf("第%d个月有%d只兔子", n, fun(n));
    return 0;
}
 
int fun(int n) {
    if (n == 1 || n == 2) {
        return 1;
    }
 
    return fun(n - 1) + fun(n - 2);
}

6.执行结果

image.png

相关文章
|
3月前
|
Java 编译器 C语言
深入了解字符(串)函数 -- -- 字符(串)函数的实现(strlen、strcpy、strcmp、strcat、strstr、)内存函数的实现(memcpy、memmove)
深入了解字符(串)函数 -- -- 字符(串)函数的实现(strlen、strcpy、strcmp、strcat、strstr、)内存函数的实现(memcpy、memmove)
33 0
|
3月前
|
算法
KMP算法 与 strstr()函数
KMP算法 与 strstr()函数
|
3月前
|
Python
ptthon字符串的逆序输出
字符串的逆序输出
33 0
|
C语言
虎头虎脑的sizeof、strlen、数组长度、数组中元素个数和字符串长度
虎头虎脑的sizeof、strlen、数组长度、数组中元素个数和字符串长度
模拟实现库函数strstr--查找子字符串
模拟实现库函数strstr--查找子字符串
逆置字符串
逆置字符串
57 0
|
算法
【数据结构与算法】字符串2:KMP & 实现 strStr() & 重复的子字符串
【数据结构与算法】字符串2:KMP & 实现 strStr() & 重复的子字符串
62 0
利用函数求字符串长度
利用函数求字符串长度
54 0
|
存储 算法 C++
【每日算法Day 89】手动实现字符串转整数(atoi)函数,你会吗?
【每日算法Day 89】手动实现字符串转整数(atoi)函数,你会吗?
|
C++
C++ 递归和非递归实现字符串反转 char *reverse(char *s)
C++ 递归和非递归实现字符串反转 char *reverse(char *s)
94 0