一些题目

简介: 1. 将字符逆序(abcdef变成fedcba)并且不能使用库函数提示:strlen是计算字符串长度的库函数(到\0截至)–需要引用头文件#include<string.h>方法一:计数器法:写一个自己的strlen函数–用到计数器方法

1. 将字符逆序(abcdef变成fedcba)并且不能使用库函数



提示:strlen是计算字符串长度的库函数(到\0截至)–需要引用头文件#include<string.h>


方法一:计数器法:写一个自己的strlen函数–用到计数器方法

nt my_strlen(char* str)//写一个自己的strlen函数--用到计数器方法
{
    int count=0;
    while(*str !='\0')
    {
        count++;
        str++;
    }
    return count;
}
void reverse_string(char arr[])//不需要打印就 void
{
    int left=0;
    int right=my_strlen(arr)-1;//因为从1开始所以-1
    while(left<right)
    {
        int tmp=arr[left];
        arr[left]=arr[right];
        arr[right]=tmp;
        left++;
        right--;    
    }    
}
int main()
{
    char arr[]="abcdef";
    reverse_string(arr);
    printf("%s",arr)
    return 0;
}


方法二:用递归来写(递归必须有条件限制,并且每递归一次就要逼近条件)



1.a f 交换

2.逆序reverse_string(’‘b c d e’’);

int my_strlen(char* str)
{
    int count=0;
    while(*str !='\0')
    {
        count++;
        str++;
    }
    return count;
}
reverse_string(char* arr)
{
    char tmp=arr[0];//第一个字符先放到临时变量去
    int len=my_strlen(arr);
    arr[0]=arr[len-1];//把最后一个字符放到第一个的位置
    arr[len-1]='\0';//最后一个字符的位置放\0
    if(my_strlen(arr+1)>=2)
    reverse_string(arr+1);//递归
    arr[len-1]=tmp;
}
int main()
{
    char arr[]="abcdef";
    reverse_string(arr);
    printf("%s\n",arr);
    return 0;
}


3. 写一个数(非负)计算其每位数字之和



//输入1729 输出19
//DigitSum(1729)
//DigitSum(172)+1729%10
//DigitSum(17)+1729%10+172%10
//DigitSum(1)+1729%10+172%10+17%10
int DigitSum(unsigned int num)
{
    if(num>9)
    {
        return DigitSum(num/10)+num%10;
    }
}
int main()
{
    unsigned int num=0;
    scanf_s("%d",&num);
    int ret=DigitSum(num);
    printf("ret=%d",ret);
    return 0;
}


4. 递归实现n的K次方



思路:nk = n * n(k-1)

double Pow(int n,int k)
{
    if(k==0)
    {
        return 1;
    }
    else if(k<0)
    {
        return (1.0/(Pow(n,-k)));
    }
    else
    {
        return n*Pow(n,k-1);
    }
}
int main()
{
    int n=0;
    int k=0;
    sanf_s("%d%d",&n,&k);
    double ret=Pow(n,k);
    printf("ret=%lf",ret);
    return 0;
}
相关文章
剑指offer题目汇总(三)
剑指offer题目汇总(三)
|
6月前
|
算法
剑指offer题目汇总(一)
剑指offer题目汇总(一)
|
算法 Python
打卡力扣题目六
打卡力扣题目六
|
存储 算法 Python
打卡力扣题目五
打卡力扣题目五
|
5月前
|
存储 SQL 算法
LeetCode 题目 118:杨辉三角
LeetCode 题目 118:杨辉三角
|
5月前
|
缓存 算法 数据可视化
LeetCode 题目 119:杨辉三角 II
LeetCode 题目 119:杨辉三角 II
剑指offer题目汇总(四)
剑指offer题目汇总(四)
剑指offer题目汇总(二)
剑指offer题目汇总(二)
剑指offer题目汇总(五)
剑指offer题目汇总(五)