牛客网刷题——第三天

简介: 牛客网刷题——第三天

一、数字在升序数组中出现的次数

给定一个长度为 n 的非降序数组和一个非负数整数 k ,要求统计 k 在数组中出现的次数

在这里插入图片描述

在这里插入图片描述
暴力求解:

int GetNumberOfk(int* data, int dataLen, int k)
{
    int count = 0;
    for (int i = 0; i < dataLen; i++)
    {
        if (*(data + i) == k)
            count++;
        if (count != 0 && *(data + i) != k)//避免多余循环
            break;
    }    
    return count;
}

二、整数转换

编写一个函数,确定需要改变几个位才能将整数A转成整数B

在这里插入图片描述

int converInteger(int A, int B)
{
    int count = 0;
    while (A != B)
    {
        if (A % 2 != B % 2)
            count++;
        A /= 2;
        B /= 2;
    }
    return count;
}

三、图片整理

Lily上课时使用字母数字图片教小朋友们学习英语单词,每次都需要把这些图片按照大小(ASCII码值从小到大)排列收好。请大家给Lily帮忙,通过代码解决。Lily使用的图片使用字符"A"到"Z"、"a"到"z"、"0"到"9"表示。
输入描述:
一行,一个字符串,字符串中的每个字符表示一张Lily使用的图片。
输出描述:
Lily的所有图片按照从小到大的顺序输出

在这里插入图片描述
这里简单使用下qsort排序即可A出来

#include<stdio.h>
#include<string.h>
int cmp_char(const void* e1,const void *e2)
{
    return *(char*)e1-*(char*)e2;
}
int main()
{
    char ch[1002]={0};
    scanf("%s",ch);
    int sz=strlen(ch);
    qsort(ch,sz,1,cmp_char);
    printf("%s",ch);
    return 0;
}

四、字符个数统计

编写一个函数,计算字符串中含有的不同字符的个数。字符在 ASCII 码范围内( 0~127 ,包括 0 和 127 ),换行表示结束符,不算在字符里。不在范围内的不作统计。多个相同的字符只计算一次
例如,对于字符串 abaca 而言,有 a、b、c 三种不同的字符,因此输出 3 。
输入描述:
输入一行没有空格的字符串。
输出描述:
输出 输入字符串 中范围在(0~127,包括0和127)字符的种数。

在这里插入图片描述
在这里插入图片描述

int main()
{
    char arr[501] = { 0 };
    int count[128] = { 0 };//把字符串对应的Ascll码作为下标
    int sum = 0;//计算不同字符个数
    scanf("%s", arr);
    for (int i = 0; i < strlen(arr); i++)
    {
        count[arr[i]]++;
    }
    //只要count[i]不等于0,sum++
    for (int i = 0; i < 128; i++)
    {
        if (count[i])
            sum++;
    }
    printf("%d", sum);
    return 0;
}

五、箭形图案

KiKi学习了循环,BoBo老师给他出了一系列打印图案的练习,该任务是打印用“*”组成的箭形图案。
输入描述:
本题多组输入,每行一个整数(2~20)。
输出描述:
针对每行输入,输出用“*”组成的箭形。

在这里插入图片描述
在这里插入图片描述

#include<stdio.h>
int main()
{
    int n = 0;
    while (scanf("%d", &n) != EOF)
    {
        int i = 0;
        int j = 0;
        int k = 0;
        for (i = 0; i < n + 1; i++)
        {
            for (j = 0; j < n - i; j++)
            {
                printf("  ");
            }
            for (k = 0; k <= i; k++)
            {
                printf("*");
            }
            printf("\n");
        }
        for (i = 0; i < n; i++)
        {
            for (j = 0; j <= i; j++)
            {
                printf("  ");
            }
            for (k = 0; k < n - i; k++)
            {
                printf("*");
            }
            printf("\n");
        }
    }
    return 0;
}
目录
相关文章
|
存储 人工智能 Serverless
微服务和 Serverless 架构-函数计算 FC 简介及应用场景
微服务和 Serverless 架构-函数计算 FC 简介及应用场景
微服务和 Serverless 架构-函数计算 FC 简介及应用场景
|
12月前
|
机器学习/深度学习 算法 数据安全/隐私保护
数据链中常见电磁干扰matlab仿真,对比噪声调频,线性调频,噪声,扫频,灵巧五种干扰模型
本项目展示了用于分析和模拟电磁干扰对数据链系统影响的算法。通过Matlab 2022a运行,提供无水印效果图预览。完整代码包含详细中文注释及操作视频。理论部分涵盖五种常见干扰模型:噪声调频、线性调频、噪声、扫频和灵巧干扰,详细介绍其原理并进行对比分析。灵巧干扰采用智能技术如认知无线电和机器学习,自适应调整干扰策略以优化效果。
|
架构师 云计算
FinOps从业者认证(FinOps Certified Practitioner)
本课程涵盖FinOps基础知识、框架、核心角色及专业术语,并介绍云计算与FOCUS倡议入门。适合财务、采购、产品等部门专业人士,及ITAM、ITFM等领域的合作角色。课程包含互动培训模块、12个月材料访问权限及认证考试。通过考试后,可获FinOps认证证书及数字徽章,有效期24个月。考试由50道选择题组成,需达到75%得分。
|
网络架构 CDN
|
安全 开发者 UED
APP上架到应用商店需要哪些流程?
APP上架是一个涉及多个步骤和准备工作的过程,主要包括准备上架资料和遵循上架流程两个方面。
1321 1
|
SQL 关系型数据库 MySQL
深入解析MySQL视图、索引、数据导入导出:优化查询和提高效率
索引是一种特殊的数据库结构,由数据表中的一列或多列组合而成,可以用来快速查询数据表中有某一特定值的记录。通过索引,查询数据时不用读完记录的所有信息,而只是查询索引列。否则,数据库系统将读取每条记录的所有信息进行匹配。索引可以根据一个或多个列的值进行排序和搜索,提高查询时的效率。MySQL索引(Index)是一种特殊的数据结构,建立在表的列上,旨在加快数据库查询的速度通过在索引列上创建索引,数据库可以更快地定位和访问特定值,而无需扫描整个数据表。索引可以应用于单个列或多个列的组合,可以按升序或。
|
自然语言处理 算法 C语言
正点原子T100智能焊台体验,顺便咱们来说说它的软件菜单、界面切换如何来实现?
正点原子T100智能焊台体验,顺便咱们来说说它的软件菜单、界面切换如何来实现?
597 0
|
弹性计算
阿里云服务器免费试用1个月到期不用请释放否则会欠费
阿里云服务器免费试用1个月到期了怎么办?不要了就释放掉,想要继续使用可以将按量转为包年包月并续费
3775 0
阿里云服务器免费试用1个月到期不用请释放否则会欠费