求字符串长度
int my_strlen(char* arr)
{
if (*arr != '\0')
return 1 + my_strlen(arr + 1);
else
return 0;
}
int main()
{
char arr[20];
scanf("%s", arr);
printf("字符串长度为%d\n", my_strlen(arr));
return 0;
}
运行如下:。
求输入的每位数字之和
int DigitSum(int n)
{
if (n > 1)
return (n % 10) + DigitSum(n / 10);
else
return 0;
}
int main()
{
int n=0;
scanf("%d", &n);
printf("每位数字之和为%d\n", DigitSum(n));
return 0;
}
运行如下:。
求n的k次方
int function(int n, int k)
{
if (k >=1)
return n * function(n, k - 1);
else
return 1;
}
int main()
{
int n = 1, k = 1;
scanf("%d %d", &n, &k); //输入n和k的值
printf("%d\n",function(n, k));
return 0;
}
运行如下:。
求斐波那契数
int Fibonacci(int n)
{
if (n <= 2)
return 1;
else
return Fibonacci(n - 1) + Fibonacci(n - 2);
}
int main()
{
int n = 1;
scanf("%d", &n);
printf("第%d个斐波那契数为%d\n",n,Fibonacci(n));
return 0;
}
运行如下:。
实现字符串逆序
int reverse_string(char *str)
{
int size = strlen(str);
if (size == 0 || size == 1)
{
return 0;
}
char temp = str[0];
str[0] = str[size - 1];
str[size - 1] = '\0';
reverse_string(str + 1);
str[size - 1] = temp;
return 0;
}
int main()
{
char str[] = "abcd";
reverse_string(str);
int size = strlen(str);
printf("%s\n", str);
}
运行如下:
。