#define _CRT_SECURE_NO_WARNINGS 1
////函数递归
//
////按顺序打印每一位输入的数
//#include<stdio.h>
//
//void print(int n)
//{
// if (n > 9)
// {
// print(n / 10);
// }
// printf("%d ", n % 10);
//}
//
//int main()
//{
// unsigned int num = 0;
// scanf("%d", &num);
// print(num);
// return 0;
//}
////模拟实现一个strlen函数
//#include<stdio.h>
//
//int my_strlen(char* arr)
//{
// if (*arr != '\0')
// return 1 + my_strlen(arr + 1);
// else
// return 0;
//}
//
//int main()
//{
// char arr[] = "china";
// int len = my_strlen(arr);
// printf("len=%d\n", len);
// return 0;
//}
////求n的阶乘
//#include<stdio.h>
//
//int fac1(int n)//循环的方式
//{
// int i = 0;
// int ret = 1;
// for (i = 1; i <= n; i++)
// {
// ret *= i;
// }
// return ret;
//}
//
//int fac2(int n)//递归方式
//{
// if (n <= 1)
// {
// return 1;
// }
// else
// return n * fac2(n - 1);
//}
//
//int main()
//{
// int n = 0;
// int ret =0;
// scanf("%d", &n);
// ret = fac2(n);
// printf("%d\n", ret);
// return 0;
//}
////求第n个斐波那契数
//#include<stdio.h>
//
//int fib1(int n)//用递归的方式会重复计算多次
//{
// if (n <= 2)
// return 1;
// else
// return fib1(n - 1) + fib1(n - 2);
//}
//
//int fib2(int n)//这里用迭代的方式更好
//{
// int a = 1;
// int b = 1;
// int c = 1;
// while (n > 2)
// {
// c = a + b;
// a = b;
// b = c;
// n--;
// }
// return c;
//}
//
//int main()
//{
// int n = 0;
// int ret = 0;
// scanf("%d", &n);
// ret = fib2(n);
// printf("ret=%d\n", ret);
// return 0;
//}