PTA-基础编程题目集(函数题)

news2024/10/7 16:17:07

个人主页:平行线也会相交
欢迎 点赞👍 收藏✨ 留言✉ 加关注💓本文由 平行线也会相交 原创
收录于专栏【[PTA刷题训练营]】
在这里插入图片描述

目录

    • 6-1 简单输出整数
    • 6-2 多项式求值(重点掌握)
    • 6-3 简单求和
    • 6-4 求自定类型元素的平均
    • 6-5 求自定类型元素的最大值
    • 6-6 求单链表结点的阶乘和
    • 6-7 统计某类完全平方数(重点掌握)
    • 6-8 简单阶乘计算
    • 6-9 统计个位数字
    • 6-10 阶乘计算升级版(重点掌握)
    • 6-11 求自定类型元素序列的中位数(重点掌握)
    • 6-12 判断奇偶性
    • 6-13 折半查找
  • 总结
    • 6-2 多项式求值中多项式的表示方法
    • ElementType和ElemType

6-1 简单输出整数

题目链接

在这里插入图片描述

void PrintN(int N)
{
    int i=0;
    for(i=1;i<=N;i++)
    {
        printf("%d\n",i);
    }
}

6-2 多项式求值(重点掌握)

题目链接
在这里插入图片描述

double f( int n, double a[], double x )
{
    double sum=0;
    double x0=1.0;
    int i=0;
    for(i=0;i<=n;i++)
    {
        if(a[i])
        {
            sum+=x0*a[i];
            x0*=x;
        }
    }
    return sum;
}

6-3 简单求和

题目链接
在这里插入图片描述

int Sum(int list[],int n)
{
    int sum=0;
    int i=0;
    for(i=0;i<n;i++)
    {
        sum+=list[i];
    }
    return sum;
}

6-4 求自定类型元素的平均

题目链接
在这里插入图片描述

ElementType Average( ElementType S[], int N )
{
    ElementType sum=0;
    ElementType ave=0;
    int i=0;
    for(i=0;i<N;i++)
    {
        sum+=S[i];
    }
    ave=sum/N;
    return ave;
}

6-5 求自定类型元素的最大值

题目链接
在这里插入图片描述

ElementType Max( ElementType S[], int N )
{
    ElementType max=S[0];
    int i=0;
    for(i=1;i<N;i++)
    {
        if(S[i]>max)
        {
            max=S[i];
        }
    }
    return max;
}

6-6 求单链表结点的阶乘和

后续补充

6-7 统计某类完全平方数(重点掌握)

题目链接
在这里插入图片描述

int IsTheNumber ( const int N )
{
    int m=(int)(sqrt)(N);
    int n=m*m;
    if(n==N)
    {
        int num[10]={0};
        int i=0;
        while(n)
        {
            for(i=0;i<=9;i++)
            {
                if(n%10==i)
                {
                    num[i]+=1;
                }
                if(num[i]==2)
                {
                    return 1;
                }
            }
            n/=10;
        }
    }
    return 0;
}

6-8 简单阶乘计算

题目链接
在这里插入图片描述
方法一(循环):

int Factorial( const int N )
{
    if(N<0)
    {
        return 0;
    }
    else if(N==0)
    {
        return 1;
    }
    int i=0;
    int ret=1;
    for(i=1;i<=N;i++)
    {
        ret*=i;
    }
    return ret;
}

方法二(递归):

int Factorial( const int N )
{
    if(N<0)
    {
        return 0;
    }
    else if(N==0)
    {
        return 1;
    }
    return N*Factorial(N-1);
}

6-9 统计个位数字

题目链接
在这里插入图片描述
方法一:(此方法是我自己写的,虽然有点混乱,但好在结果正确)

int Count_Digit ( const int N, const int D )
{
    if(N==0)
    {
        return 1;
    }
    int tmp1=N;
    if(tmp1<0)
    {
        tmp1=-tmp1;
    }
    int tmp2=tmp1;
    int tmp3=tmp1;
    int i=0;
    int k=0;//k表示为几位数
    while(tmp2)
    {
        k++;
        tmp2/=10;
    }
    int count=0;
    for(i=0;i<k;i++)
    {
        if(tmp3%10==D)
        {
            count++;
        }
        tmp3/=10;
    }
    return count;
}

6-10 阶乘计算升级版(重点掌握)

题目链接
在这里插入图片描述

void Print_Factorial(const int N)
{
    char a[3000];
    int alength = 1;
    a[0] = 1;
    if (N < 0)
    {
        printf("Invalid input");
        return;
    }
    int i = 2;
    for (i = 2; i <= N; i++)
    {
        int z = 0;
        int k = 0;
        for (k = 0; k < alength; k++)
        {
            int t = i * a[k] + z;
            a[k] = t % 10;
            z = t / 10;
        }
        while (z)
        {
            a[alength++] = z % 10;
            z /= 10;
        }
    }
    for (i = alength - 1; i >= 0; i--)
    {
        printf("%d", a[i]);
    }
}

6-11 求自定类型元素序列的中位数(重点掌握)

题目链接
在这里插入图片描述

ElementType Median(ElementType A[], int N)
{
    ElementType i = 0;
    for (i = 0; i < N - 1; i++)
    {
        int j = 0;
        for (j = 0; j < N - 1 - i; j++)
        {
            if (A[j] > A[j + 1])
            {
                ElementType tmp = 0;
                tmp = A[j];
                A[j] = A[j + 1];
                A[j + 1] = tmp;
            }
        }
    }
    ElementType ret = 0;
    if (N % 2 == 0)
    {
        return  ret = A[(N + 1) / 2];
    }
    else
    {
        return ret = A[(N + 1) / 2 - 1];
    } 
}//超时但结果正确

在这里插入图片描述
上述代码写的时候结果正确,但是很遗憾超时了😂不过骗点分还是没问题的,哈哈😄。
下面是我找到的另外一种做法:

ElementType Median(ElementType A[], int N)
{
    int k = 0;
    ElementType tmp = 0;
    int i = 0;
    for (i = N / 2; i > 0; i = i / 2)
    {
        int j = 0;
        for (j = i; j < N; j++)
        {
            tmp = A[j];//将找到的中位数放到中间变量中去
            for (k = j; k >= i; k = k - i)
            {
                if (tmp < A[k - i])
                {
                    A[k] = A[k - i];
                }
                else
                {
                    break;
                }
            }
            A[k] = tmp;
        }
    }
    return A[N / 2];
}

在这里插入图片描述

6-12 判断奇偶性

题目链接
在这里插入图片描述

int even( int n )
{
    if(n%2==0)
        return 1;
    return 0;
}

6-13 折半查找

后续补充

总结

6-2 多项式求值中多项式的表示方法

多项式求值中多项式即:
在这里插入图片描述
这里我想说的是x的i次方该如何表示,其中让我感到巧妙的是这一部分:x0*=x;

ElementType和ElemType

Element Type:typedef int ElementType;定义Element Type为int类型
ElemType:#define ElemType int;定义ElemType为int类型
这两个的作用都是一样的,没有区别,只不过定义的方式不同而已:
对于**typedef int ElementType;是重命名
对于#define ElemType int;是宏定义**

由于笔者还没怎么接触到数据结构,所以有些更好的题解不能进行没有写到,后续再给大家补充,另外6-66-13也是类似情况,请谅解,我会尽力及时补充。蟹蟹各位。😀

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/86155.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

医院陪诊小程序怎么开发-医院陪诊小程序源码功能

目前医院陪诊新型行业已经占据了很大的市场所在&#xff0c;我们去医院看病找医生挂号帮忙取药有时候去外地人生地不熟的 自己转半天摸索不过来浪费时间 而且有时候一个人需要陪同比较放心&#xff0c;所以呢衍生出来了 热门的陪诊师 如何开发&#xff1f; 开发无非就是几种 …

如何为 Longhorn 扩展对象存储能力

作者&#xff1a; 王海龙&#xff0c;Rancher 中国社区技术经理&#xff0c;Linux Foundation APAC Evangelist&#xff0c;负责 Rancher 中国技术社区的维护和运营。拥有 8 年的云计算领域经验&#xff0c;经历了 OpenStack 到 Kubernetes 的技术变革&#xff0c;无论底层操作…

软件包管理器RPM与yum

1、RPM安装软件包 安装单个rpm软件包 下载JDK8u221的rpm软件包 链接&#xff1a;https://pan.baidu.com/s/1fYKNNM02GBh-cOUuajkBIg 提取码&#xff1a;yg53 上传JDK8u221的rpm软件包到虚拟机/opt目录 命令&#xff1a;rpm -ivh jdk-8u221-linux-x64.rpm 查看JDK版本 命令&a…

C语言split分割字符串

C语言split分割字符串。 //以下解法的前提是&#xff0c;先把所有环变成1.无环路&#xff0c;2.一个环没有扣住3个及以上的其他环 voidmain(){ intarray[16]{0}; //init,array[1]xxx;根据输入初始化数组&#xff0c;如1-2&#xff0c;则&#xff0c;array[1]2,... intHash…

在线人事管理系统

开发工具(eclipse/idea/vscode等)&#xff1a;idea 数据库(sqlite/mysql/sqlserver等)&#xff1a;mysql 功能模块(请用文字描述&#xff0c;至少200字)&#xff1a;本系统按功能分为以下几个模块: “简易云”是这个系统的名字 &#xff08;1&#xff09;登录页面&#xff1a;实…

【HMS Core】华为统一扫码服务ScanKit如何获取具体条码的类型?

1、问题描述 项目中接入了华为的统一扫码服务SDK&#xff0c;识别过程正常&#xff0c;但是目前有个需求&#xff0c;需要在扫码完成之后根据条码的具体类型处理接下来的业务。 问题是&#xff1a;识别完条形码后&#xff0c;如何拿到具体的条形码和二维码类型&#xff0c;比…

从零搭建本地pypi镜像源1:快速体验

前言&#xff1a; 许多公司&#xff0c;出于数据安全与知识产权的原因&#xff0c;在公司内部搭建局域网进行算法开发。配置一个本地的pypi镜像源对工程开发十分重要。搭建本地pypi镜像源的工具有多种&#xff0c;本文主要介绍pip2pi方法。 第一步&#xff1a;新建项目&#…

间接采购品类多,机械制造企业如何破局制胜优化间采管理?

受贸易政策和能源结构转型等宏观因素的叠加影响&#xff0c;当前机械制造业的市场环境正在迅速变化。过去几十年来&#xff0c;全球经济的有利形势迅速逆转&#xff0c;复杂的国际形势也影响了区域乃至全球贸易平衡。在国内&#xff0c;疫情频发、产业升级、能源转型、“双碳”…

10个提高生产力的 Linux 命令与技巧,用完直接起飞

文章目录一、前言二、使用tab键进行补全2.1 使用Tab键补全命令2.2 使用Tab键补全路径2.3 使用Tab键补全参数三、切换回上一个工作目录四、返回用户主目录五、搜索您使用过的命令六、移至行首或行尾七、快速删除八、使用 less读取文件九、格式化输出结语一、前言 在本文中&…

多数据源解决分布式事务

环境&#xff1a;ideaspringboot2.x 场景&#xff1a;调用addUser方法执行对两个数据库的表操作&#xff0c;如果方法出现异常就回滚 user数据库中的users表 order数据库中的order_number表 将各自的事务管理器改为统一事务管理器即可 第一步pom文件配置jta atomikos 依赖 &l…

Acwing-872. 最大公约数

d | a, a | b > d | ax by (a, b) &#xff08;b, a mod b&#xff09; 证明&#xff1a;a mod b a - [a / b] * b a - c * b 注&#xff1a;[ ] 为下取整符号&#xff0c;[a / b] 记为c 所以&#xff0c;(a, b) &#xff08;b, a - c * b&#xff09; &#xf…

FFmpeg基础到工程-多路H265监控录放开发学习笔记

多路H265监控录放开发学习笔记 课程涉及&#xff1a;FFmpeg,WebRTC,SRS,Nginx,Darwin,Live555,等。包括&#xff1a;音视频、流媒体、直播、Android、视频监控28181、等。 具体内容包括&#xff1a; 一、视频监控的架构和流程 二、FFmpeg4.3SDL2Qt5开发环境的搭建 三、FFmpeg的…

Chomsky文法

一、实验原理 了解0123型文法的定义并会判断各个文法&#xff0c;会编写并利用程序进行0123型文法的判断 二、实验目的 由于不同文法的判断归根结底是对产生式中不同终结符和非终结符个数的判断&#xff0c;所以在程序中先放置三个字符串集合用以存储终结符、非终结符、产生…

git clone info/refs not valid: is this a git repository问题解决

项目场景&#xff1a; 在我们使用gitlab克隆代码时候&#xff0c;发现无法克隆&#xff0c;遇到如下问题 $ git clone http://192.168.2.x/product/demo.git Cloning into zhlx-web-bpmn... fatal: http://192.168.2.x/product/demo.git/info/refs not valid: is this a gi…

几张图片生成3D模型?距离真正的AI建模还有多远?

时间溯回&#xff0c;早在2017年&#xff0c;美图秀秀就曾引入人工智能美化人像而被谷歌誉为“最佳娱乐App”。智能技术奔腾发展&#xff0c;今年的AIGC技术可谓在各行各业大放异彩&#xff0c;从AI绘画、AI写作到AI配音&#xff0c;人工智能技术自动生成内容已经成为继UGC、PG…

Go C编程 第1课 神奇的魔笔

慧通教育 慧通教育 1.画长方形&#xff08;GoC测试题样例&#xff09; 难度&#xff1a;1 登录 26.画7字(魔法学院第3课) 难度&#xff1a;1 登录 27.画2字(魔法学院第3课) 难度&#xff1a;1 登录 28.画十字(魔法学院第3课) 难度&#xff1a;1 登录 29.画旗帜(魔法学院第…

linux系统使用rsync做主备服务器文件同步

根据本文档设置&#xff0c;可以实现备机自动同步主机中的文件。 &#xff08;注意&#xff0c;此方式缺陷为&#xff1a;如果主机文件修改&#xff0c;但是文件大小无变化或者文件变小时&#xff0c;无法自动同步到备机中&#xff0c;只有主机中文件修改后变大或者名称修改才能…

DP学生最喜欢/讨厌选学的IB课程是什么?

我们看看IBDP在读生们对于IBDP各学科的主观看法供正在选课的准IB学生们参考&#xff01;&#xff08;以下以第一人称方式&#xff0c;信息汇总于IB论坛&#xff0c;仅汇总部分科目&#xff0c;主观性强&#xff0c;仅供参考&#xff09;DP学生最喜欢的IB课程 ● 数学 AA HL 被数…

Java基于springboot+vue+elementUI企业制度管理系统

本企业制度管理系统是针对目前企业制度管理的实际需求&#xff0c;从实际工作出发&#xff0c;对过去的企业制度管理系统存在的问题进行分析&#xff0c;完善用户的使用体会。采用计算机系统来管理信息&#xff0c;取代人工管理模式&#xff0c;查询便利&#xff0c;信息准确率…

如何从音频中提取伴奏?这篇文章告诉你如何提取伴奏

有没有小伙伴在制作视频后期的时候为配乐而烦恼过呢&#xff1f;我就有&#xff0c;之前想为一个视频配上音乐&#xff0c;就直接将歌曲导入视频里面&#xff0c;但出来的效果很是杂乱&#xff0c;导致视频的声音听起来非常嘈杂&#xff0c;影响到了听感和观感&#xff0c;但是…