PTA第六章作业详解

news2025/2/22 16:19:42

在这里插入图片描述

🚀write in front🚀
📝个人主页:认真写博客的夏目浅石.
🎁欢迎各位→点赞👍 + 收藏⭐️ + 留言📝
📣系列专栏:夏目的作业
💬总结:希望你看完之后,能对你有所帮助,不足请指正!共同学习交流 🖊
✉️如果无聊的话,就来逛逛我的博客栈吧stack-frame.cn

文章目录

  • 前言
  • 6-1 不一样的A-B
  • 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-14 数字求和
  • 6-15 数字转换
  • 6-16 巫妖王的愤怒
  • 6-17 字符串逆序
  • 6-18 字母统计
  • 结语


前言

我是夏目浅石,本次作业将由我来给大家讲解第六章作业,希望大家可以吃透这些题目,遇见更好的自己


6-1 不一样的A-B

题目描述:
在这里插入图片描述

/*
大致题意:给定两个数字n,m,然后从 a数组 里面找 b数组 一样的数字进行删除
如果 不一样的 就直接从小到大输出 若全部被删除 就输出NULL
*/

void cn(int n,int m)
{
    int a[110],b[110],c[110];
    int k=0;
    
    //输入部分
    for(int i=0;i<n;i++) scanf("%d",&a[i]);
    for(int j=0;j<m;j++) scanf("%d",&b[j]);
    
    //算法设计部分
    /*
    写下我的思路:
    1.遍历 数组a 
    2.把不一样的 存放到新数组 c数组 里面 方法:flag标记法
    3.排序输出 c数组 里面的内容
    */
    
    //遍历+存放
    for(int i=0;i<n;i++)
    {
        int flag=0;
        for(int j=0;j<m;j++)
        {
            if(a[i]==b[j])
            {
                flag=1;
                break;
            }
        }
        if(flag==0) c[k++]=a[i];
    }
    
    //判断是否为NULL
    if(k==0) printf("NULL\n");
    else
    {
        //显然对于 c数组 进行排序
        //冒泡排序
        for(int i=0;i<k-1;i++)
        {
            int j=0;
            for(j=0;j<k-1-i;j++)
            {
                if(c[j]>c[j+1])
                {
                    int tmp=c[j];
                    c[j]=c[j+1];
                    c[j+1]=tmp;
                }
            }
        }
        
        //输出部分
        for(int i=0;i<k;i++) printf("%d ",c[i]);
    }
}

6-2 不一样的斐波那契数列

题目描述:
在这里插入图片描述

/*
大致题意:类似于 斐波那契数列 考察你的递归 but 变化了f1,f2.
*/

int cn(int n)
{
    //设置新的起始值
    int f1=7,f2=11,f;
    //讨论情况
    if(n==0)
        return f1;
    if(n==1)
        return f2;
    else
        f=cn(n-1)+cn(n-2);
    return f;
}

6-3 反素数

在这里插入图片描述

/*
基础知识:
1.素数的定义:素数是指在大于1的自然数中,除了1和它本身以外不再有其他因数的自然数。
2.反素数的定义:在一个区间内,因子最多的数(并且因子个数相同的时候值最小),
  所以反素数是相对于一个集合来说的。

题目意思:就是在一个区间里面 找到 谁的因子 最多 然后不断迭代。
*/

int cn(int a,int b)
{
    //定义 + 初始化
    int ans=0,max=a;
    
    //遍历区间 [a,b]
    for(int i=a;i<=b;i++)
    {
        int cnt=0; //记录 因子个数 
        
        for(int j=2;j<=i;j++) //暴力 遍历求因子
        {                     //优化 j<=i/2
            if(i%j==0) cnt++;
        }
        //这里 ans 表示 我所记录的上一个 因子个数的最大值
        if(cnt>ans)
        {
            ans=cnt;
            max=i;
        }
    }
    return max;//返回 这个满足因子个数 最多的数。
}
//---------------------手动分界线-------------------------------
//求素数 函数---暴力
void isprime(int n)
{
    for(int i=2;i*i<=n;i++)
    {
        int j=0;
        for(j=2;j<i;j++)
        {
            if(i%j==0) break;
        }
        if(j==i) printf("%d ",i);
        else continue;
    }
}

6-4 范围水仙花数

在这里插入图片描述

//考察 水仙花数
int cn(int n,int m)
{
    int s,k=0;
    int book[1000];
    
    for(int i=n;i<=m;i++)
    {
        int j=i,s=0;
        while(j)
        {
            s+=(j%10)*(j%10)*(j%10);
            j/=10;
        }
        if(i==s) book[k++]=i;
    }
    
    if(k)
    {
        printf("%d",book[0]);
        for(int i=1;i<k;i++) printf(" %d",book[i]);
        return 1;
    }
    else return 0;
}

6-5 公约数和公倍数

在这里插入图片描述

/*
题目意思:求出来 公约数 + 公倍数
*/
//方法:辗转相除法---课本 P148 例 4-21
long long cn(long long a,long long b)
{
    long long r,t;
    while(r=a%b)
        a=b,b=r;
    return b;
}

//-----------------------手动分割线----------------------
/*
知识总结:二种方法求解此类问题
*/
//递归实现
int gcd(int a,int b)//计算最大公约数---递归法
{
    if (b==0)
        return a;
    int r = a%b;
    return gcd(b,r); //当然这一种可以写成 逗号表达式的 形式。
}
//辗转相除实现
int gcd(int a,int b)  //计算最大公约数---辗转相除法
{
    int t;
    while(b > 0)
    {
        t = a % b;
        a = b;
        b = t;
    }
    return a;
}

6-6 进制转换

在这里插入图片描述

/*
题目大意:对于一个数字n 进行 转换成 r进制数
*/

int cn(int n,int r)
{
    int k=0;
    
    if(r>=1&&r<10)
    {
        while(n)
        {
            s[k++]=n%r+48;//int类型-->char类型 需要 +’0‘ 或者 +48
            n/=r;
        }
    }
    else
    {
        while(n)
        {
            int j=n%r;
            n/=r;
            if(j>9) s[k++]=j+55; //对于大于9的 就要 从十开始 变成 字母了
                                 //然后 9到16 差了7 所以要在 +48基础上 多+ 7
            else s[k++]=j+48;
        }
    }
    return k;
}

6-7 绝对值排序

在这里插入图片描述

/*
题目大意:在有 绝对值的前提下 进行从大到小 排序
*/

void cn(int a[],int n)
{
    //输入
    for(int i=0;i<n;i++) scanf("%d",&a[i]);
    //冒泡排序+abs函数的使用
    for(int i=0;i<n-1;++i)
    {
        int j=0;
        for(j=0;j<n-1-i;++j)
        {
            if(abs(a[j])<abs(a[j+1]))
            {
                int tmp=a[j];
                a[j]=a[j+1];
                a[j+1]=tmp;
            }
        }
    }
    //输出
    for(int i=0;i<n;i++)
    {
        if(i!=n-1)
            printf("%d ",a[i]);
        else printf("%d",a[i]);
    }
}

6-8 连接字符串

在这里插入图片描述

/*
题目大意:将 两个字符串 进行链接
*/

void cn(char s[],char b[])
{
    int i=0,j=0;
    
    while(s[i]) i++;//先把 s数组本身的字符 走到末尾
    
    while(b[j]) s[i++]=b[j++]; //加入新的字符
    //下面这个 ’\0‘ 一定要重视 printf函数以 %s 打印是以 \0 进行停止的
    s[i]='\0';
}

6-9 求次方

在这里插入图片描述

/*
题目大意:求一个数字n的m次方
*/
long long cn(long long x,long long y)
{
    long long sum=1;
    //暴力叠乘
    for(int i=1;i<=y;++i)
    {
        sum*=x;
    }
    return sum;
}

6-10 求阶乘

在这里插入图片描述

/*
题目大意:用递归的方法求整数x的阶乘。
*/
//暴力方法
long long cn(int x)
{
    long long sum=1;
    for(int i=1;i<=x;++i) 
    {
        sum*=i;
    }
    return sum;
}
//递归方法
long long cn(int x)
{
    if(x<=1)
        return 1;
    return x*cn(x-1);
}

6-11 求母牛数

在这里插入图片描述

//思维题一道
void cn(int a[])
{
    //类似于斐波那契,但是要找规律
    a[1]=1,a[2]=2,a[3]=3;
    
    for(int i=4;i<55;++i)
    {
        a[i]=a[i-3]+a[i-1];
    }
}

6-12 求素数

在这里插入图片描述

//暴力 求素数
int cn(long long x)
{
    if(x==1) return 0;
    for(int i=2;i*i<=x;i++)
        if(x%i==0) return 0;
    return 1;
}

6-13 求最大值

在这里插入图片描述

//暴力求最大值
int cn(int a[],int n)
{
    int mx=a[0],i;
    for(i=1;i<n;i++)
        mx=a[i]>mx?a[i]:mx;
    return mx;
}

//递归求最大值
int cn(int a[],int n)
{
    int m;
    if(n<=1) return a[0];//结束递归条件
    else
    {
        m=cn(a,n-1);//继续递归
        return a[n-1]>=m?a[n-1]:m;//返回最大值
    }
}

6-14 数字求和

在这里插入图片描述


//暴力求解数字和
void cn(int n,int ans)
{
    while(n)
        ans += n %10,n/=10;
    printf("%d\n",ans);
}

//递归求解数字和

void cn(int n,int ans)
{
    if(n<10)
    {
        ans+=n;
        printf("%d\n",ans);
    }
    else
    {
        ans+=(n%10);
        cn(n/10,ans);
    }
}

6-15 数字转换

在这里插入图片描述

//其实就是对 偶数 和 奇数的 不同操作
void cn(long long x)
{
    while(x!=1)
    {
        printf("%lld ",x);
        if(x%2) x=x*3+1;
        else x/=2;
    }
    printf("%lld ",x);
}

6-16 巫妖王的愤怒

在这里插入图片描述

void cn(int n)
{
    int mn;
    //% 之后余下的越多 就说明不行 所以就换一种商品购买
    if(n<300) mn=n%150>n%200?n%200:n%150;
    else mn=n%50;
    printf("%d\n",mn);
    return 0;
}

6-17 字符串逆序

在这里插入图片描述

void cn(char s[])
{
    int left=0,right=strlen(s)-1;
    
    while(left<right)
    {
        char tmp=s[left];
        s[left]=s[right];
        s[right]=tmp;
        right--;
        left++;
    }
    return;
}

6-18 字母统计

在这里插入图片描述

void cn(char s[])
{
    for(int i=0;s[i];++i)
    {
        if(s[i]>='A'&&s[i]<='Z')
        {
            num1++;
        }
        else if(s[i]>='a'&&s[i]<='z')
        {
            num2++;
        }
    }
}

结语

我是夏目浅石,希望和你一起学习进步,刷题无数!!!希望各位大佬能一键三连支持一下博主,hhhh~我们下期见喽

在这里插入图片描述
如果无聊的话,就来逛逛我的博客栈吧stack-frame.cn

原创不易,还希望各位大佬支持一下 \textcolor{blue}{原创不易,还希望各位大佬支持一下} 原创不易,还希望各位大佬支持一下

👍 点赞,你的认可是我创作的动力! \textcolor{9c81c1}{点赞,你的认可是我创作的动力!} 点赞,你的认可是我创作的动力!

⭐️ 收藏,你的青睐是我努力的方向! \textcolor{ed7976}{收藏,你的青睐是我努力的方向!} 收藏,你的青睐是我努力的方向!

✏️ 评论,你的意见是我进步的财富! \textcolor{98c091}{评论,你的意见是我进步的财富!} 评论,你的意见是我进步的财富!

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

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

相关文章

vue+uniapp瀑布流布局多种实现方式

文章目录前言一、实现原理二、代码实现1.方式1&#xff08;图片高度累加比较法&#xff09;2.方式2&#xff08;父元素高度比较法&#xff09;三.uniapp实现代码实现四、多列实现代码实现前言 瀑布流布局是网页设计常见的一种布局&#xff0c;一般用于图片多列展示。列宽固定&…

Vue3:状态管理-Store(Vuex,Pinia)

什么是状态管理 理论上来说&#xff0c;每一个 Vue 组件实例都已经在“管理”它自己的响应式状态了 它是一个独立的单元&#xff0c;由以下几个部分组成 状态&#xff1a;驱动整个应用的数据源&#xff1b;视图&#xff1a;对状态的一种声明式映射&#xff1b;交互&#xff1a…

写给20、21级学生的话

写给20、21级学生的话前言一、关于招聘变招生&#xff0c;你怎么看&#xff1f;二、对于即将实习/已经实习的学生&#xff0c;你有什么建议&#xff1f;1.学习方面2.提升方面三、思想成年真的很重要前言 最近&#xff0c;有一些同学遇到的实习问题&#xff0c;我统一回复下&…

Vue2通知提醒框(Notification)

项目相关依赖版本信息 可自定义设置以下属性&#xff1a; 自动关闭的延时时长&#xff08;duration&#xff09;&#xff0c;单位ms&#xff0c;默认4500ms消息从顶部弹出时&#xff0c;距离顶部的位置&#xff08;top&#xff09;&#xff0c;单位像素px&#xff0c;默认24p…

HTML常用快捷键都在这了 看完之后效率暴涨

是这么回事; 我今天上网页课的时候&#xff0c;发现好多同学在敲标签的时候敲得很慢&#xff0c;我再仔细一看&#xff0c;好家伙&#xff0c;他们的标签竟然都是一个一个的敲出来的&#xff01; 那效率能高吗&#xff1f; 这是当时让敲的代码&#xff0c;很简单&#xff0c;对…

css实现元素居中的5种方法

目录 1.最简单的方法 2.利用定位 3.定位配合css3位移 4.弹性盒模型 5.网格布局Grid 相信大家在面试的时候也会经常碰到css实现元素居中的方法&#xff0c;下面我介绍5中方法给大家&#xff0c;欢迎大家评论区交流 需求&#xff1a; 给定两个元素&#xff0c;这两个元素是…

vue项目设置打包后的静态文件访问路径

vue项目设置打包后的静态文件访问路径 **啰嗦一下&#xff1a;**相同域名下可能会存在两份相关或不相关的代码&#xff0c;需要通过切换文件夹路径进入不同项目时&#xff0c;需要在项目打包输出代码时设置静态文件的访问路径&#xff08;vue、react都要&#xff09;。这种方式…

架构之软件负载均衡LVS、Nginx、Haproxy、Keepalived

目前市面上最常见的负载均衡技术方案主要有三种&#xff1a; 基于DNS负载均衡&#xff0c; DNS负载均衡主要适用于的场景是多地集群的方式&#xff0c;也就是可能北京有一个数据中心&#xff0c;在其中部署了一整套的集群提供服务&#xff0c;在上海有一个数据中心&#xff0c…

图片的美白与美化

博主简介 博主是一名大二学生&#xff0c;主攻人工智能研究。感谢让我们在CSDN相遇&#xff0c;博主致力于在这里分享关于人工智能&#xff0c;c&#xff0c;Python&#xff0c;爬虫等方面知识的分享。 如果有需要的小伙伴可以关注博主&#xff0c;博主会继续更新的&#xff0c…

Error: Can‘t find Python executable “python“, you can set the PYTHON env variable.解决办法

&#x1f626;电脑磕坏了 最近把公司给的mac屏幕给磕坏了&#xff0c;换成自己的macbookpro&#xff0c;本来想用时间机器做个无缝衔接&#xff0c;结果发现不能用了&#xff0c;跟客服沟通被告知macos版本在11以上不支持时间机器系统迁移&#xff0c;只能使用迁移助理做数据备…

HTML实现简单的贪吃蛇小游戏(附完整源码)

基于HTML5技术的贪吃蛇小游戏的设计与实现 项目简介&#xff1a; 贪吃蛇作为我们儿时经典的游戏之一&#xff0c;它是一款单机而又好玩的小游戏。今天&#xff0c;就让我们用html5技术实现一个简单的贪吃蛇小游戏&#xff01; 项目核心技术&#xff1a; html5的canvasJS技术 …

Typora如何设置字体的颜色

作者&#xff1a;虚坏叔叔 博客&#xff1a;https://xuhss.com 早餐店不会开到晚上&#xff0c;想吃的人早就来了&#xff01;&#x1f604; Typora如何设置字体的颜色 Typora没有直接设置字体颜色的功能&#xff0c;不能像word一样&#xff0c;选中字体直接设置想要的颜色。 …

uniapp使用高德地图

uniapp使用高德地图 1、项目前准备 1.1、首先你需要去申请一个属于自己的高德地图key&#xff0c;怎么申请暂不多说需要的去官网看 1.2、链接: 高德地图申请key直通车&#xff0c;点击前往。 有一个uniapp项目。 2、页面创建引入 新建一个uniapp的空白页 使用web-view 渲染…

Postman下载与安装操作步骤【超详细】

&#x1f468;‍&#x1f393; 博主介绍&#xff1a;大家好&#xff0c;我是超梦梦梦梦&#xff0c;很高兴认识大家~&#x1f357;关注➕点赞➕评论➕收藏 &#x1f604;&#x1f64f;博主水平有限&#xff0c;如有错误&#xff0c;欢迎各位大佬纠正 Postman下载与安装&#x1…

vue的指令和插值总结

文章目录一、安装vue二、Vue模板案例步骤三、基础模板&#xff08;记住&#xff09;四、vue的指令和插值1、{{}}&#xff1a;插值表达式的语法2、v-text&#xff1a;填充纯文本内容&#xff08;data中的值&#xff09;3、v-html&#xff1a;填充html&#xff08;data中的值&…

蓝桥杯刷题第九天

题目描述本题为填空题&#xff0c;只需要算出结果后&#xff0c;在代码中使用输出语句将所填结果输出即可。素数就是不能再进行等分的整数。比如7&#xff0c;11。而 9 不是素数&#xff0c;因为它可以平分为 3 等份。一般认为最小的素数是2&#xff0c;接着是 3&#xff0c;5&…

el-upload 超详细-(附件,图片,多类型文件)玩转上传upload--new FormData()

代码&#xff08;我的项目代码&#xff1a;注解在下面&#xff09;代码复制直接用&#xff0c;可以实现所有文件上传&#xff0c;更改接口即可&#xff08;如需详细注解&#xff0c;学习&#xff0c;下面的详解完全够用&#xff0c;从0到学会这一片加官方文档就够了&#xff09…

Electron 分享(入门,安装,打包)

Electron Electron 是一个使用 JavaScript、HTML 和 CSS 构建桌面应用程序的框架 安装 在使用 Electron 进行开发之前&#xff0c;需要安装Node.js&#xff0c;可以在终端输入以下命令输出了 Node.js 和 npm 的版本信息&#xff1a; node -v npm -v没有安装的话&#xff0c…

css 100vw、100vh出现滚动条怎么解决

要搞清楚这个问题首先要知道这两个单位&#xff08;vw、vh&#xff09;是什么意思。vw&#xff08;vh&#xff09;是相对于浏览器的视口宽度&#xff08;高度&#xff09;的&#xff0c;100vh等于浏览器的视口宽度&#xff0c;设置vw和vh会在视口发生变化时重新计算宽度和高度。…

【Vue实用功能】Vue实现文档在线预览功能,在线预览PDF、Word、Excel、ppt等office文件

文章目录[TOC](文章目录)方法一、 Luckysheet 预览方法二、 Office Web 查看器&#xff08;微软的开发接口&#xff09;方法三、 XDOC文档预览云服务(预览pdf、word、xls、ppt)方法一、 Luckysheet 预览 Luckysheet 是一个类似于 excel 的在线电子表格&#xff0c;功能强大、配…