递归相关作业
学无止境 lv.1
发布时间:2023-12-14 15:10:17 218相关标签:
#define _CRT_SECURE_NO_WARNINGS 1
#include
#include
//作业(1):递归实现 字符串中的字符反向排列:
//void reverse_string(char arr[])
//{
// int len = strlen(arr);
// char temp = arr[0];
// arr[0] = arr[len - 1];
// arr[len - 1] = '\0';
//
// if(strlen(arr+1)>=2)
// reverse_string(arr + 1);
// arr[len - 1] = temp;
//}
//int main()
//{
// char arr[] = "abcdefg";
// reverse_string(arr);
// printf("%s\n", arr);
// return 0;
//}
//void reverse_string(char arr[]) //正常做法:
//{
// char temp;
// char left=0;
// char right =strlen(arr)-1;
//
// while (left <= right)
// {
// temp = arr[left];
// arr[left] = arr[right];
// arr[right] = temp;
// left++;
// right--;
// }
//}
//作业(2):写一个递归函数:输入一个非负整数,返回组成它的数字之和,
// 例如:1729=1+7+2+9=19
//int DigitSum(unsigned int n)
//{
// if (n > 9)
// {
// return DigitSum(n / 10) + n % 10;
// }
// else
// {
// return n;
// }
//}
//int main()
//{
// unsigned int n;
// scanf("%d", &n);
// int ret = DigitSum(n);
// printf("%d\n", ret);
// return 0;
//}
//作业(3):递归实现n的k次方: n^k=n * n^(k-1)
double Pow(int n, int k)
{
if (k < 0)
{
return 1.0/(Pow(n, -k));
}
else if(k==0)
{
return 1;
}
else
{
return n * Pow(n, k - 1);
}
}
int main()
{
int n, k;
scanf("%d%d", &n, &k);
double ret = Pow(n, k);
printf("%lf\n", ret);
return 0;
}
文章来源: https://blog.51cto.com/u_15699887/5566738
特别声明:以上内容(图片及文字)均为互联网收集或者用户上传发布,本站仅提供信息存储服务!如有侵权或有涉及法律问题请联系我们。
举报