目录
写函数求n的阶乘
下面是n的阶乘的基本逻辑的基本逻辑,大家可以找找规律。
举例:当n=3时
到这一步,你的思路是不是就清晰多了,写代码就容易些啦
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
//普通方法
int Fac(int x) {
int i=0;
int a = 1;
for (i = 1; i <= x; i++) {
a *= i;
}
return a;
}
int main() {
int n = 0;
scanf("%d", &n);
int ret = Fac(n);
printf("%d\n", ret);
return 0;
}
//递归与迭代(循环)(非递归)
int Fac(int n) {
if (n <= 1)
return 1;
else
return n * Fac(n - 1);
}
int main() {
int n = 0;
scanf("%d", &n);
int ret = Fac(n);
printf("%d\n", ret);
return 0;
}
求第n个斐波那契数
//1 1 2 3 5 8 13 21 34 55....
前两个数之和等于第三个数
//普通方法
int Fib(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;
scanf("%d", &n);
int ret = Fib(n);
printf("%d\n", ret);
return 0;
}
//递归与迭代
int count = 0;
int Fib(int n) {
//if (n == 3)//统计第3个斐波那契数被计算的次数
//count++;
if (n <= 2)
return 1;
else
return Fib(n - 1) + Fib(n - 2);
}
int main() {
int n = 0;
scanf("%d", &n);
int ret = Fib(n);
printf("%d\n", ret);
//printf("%d\n", count);
return 0;
}
接收一个整数值(无符号),按顺序打印他的每一位
下面是它的基本逻辑的基本逻辑
//普通方法
//递归
接下来你就可以简单的写出了
#include<stdio.h>
void print(unsigned int n) {
if (n > 9) {
printf("%d ", n / 10);
}
printf("%d ", n % 10);
}
int main() {
unsigned int num = 0;
scanf("%d ", &num);
//写函数打印num的每一位
print(num);
return 0;
}
//编写程序不允许创建临时变量,求字符串长度
int my_strlen(char* str) {
if (*str != '\n')
return 1 + my_strlen(str + 1);
//str+1:指针向下移动一位
//1说明已经有了一个长度(*str)
else
return 0;
}
int main() {
char arr[] = { "bit" };
int len = my_strlen(arr);
printf("%d ", len);
return 0;
}