PTA第六章作业详解 水深无声 2024-04-24 23:20 87阅读 0赞 ![在这里插入图片描述][fbb68a97dc324e398f77aeef3ef98b63.png] > ?write in front? > ?个人主页:认真写博客的夏目浅石. > ?欢迎各位→点赞? + 收藏⭐️ + 留言? > ?系列专栏:[夏目的作业][Link 1] > ?总结:希望你看完之后,能对你有所帮助,不足请指正!共同学习交流 ? > ✉️如果无聊的话,就来逛逛我的博客栈吧[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 ## **题目描述:** ![在这里插入图片描述][ada21dc6e3f747179c35a026bbab162d.png] /* 大致题意:给定两个数字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 不一样的斐波那契数列 ## **题目描述:** ![在这里插入图片描述][8764db70d5184a4491c12f3abb9a93fa.png] /* 大致题意:类似于 斐波那契数列 考察你的递归 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 反素数 ## ![在这里插入图片描述][8155e1cd294d49b1b8a698901f04ea45.png] /* 基础知识: 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 范围水仙花数 ## ![在这里插入图片描述][f313e4dc525a4bb0888a6aad711d573c.png] //考察 水仙花数 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 公约数和公倍数 ## ![在这里插入图片描述][16b2455f57fb458e83980a2b7b7070fd.png] /* 题目意思:求出来 公约数 + 公倍数 */ //方法:辗转相除法---课本 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 进制转换 ## ![在这里插入图片描述][a7f3862aa5de40c197bc49ca0d96150b.png] /* 题目大意:对于一个数字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 绝对值排序 ## ![在这里插入图片描述][f2e3e42a90cb408d99be44b2820fddfe.png] /* 题目大意:在有 绝对值的前提下 进行从大到小 排序 */ 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 连接字符串 ## ![在这里插入图片描述][504d8ae8006f4dc0bf046c9b47ea312c.png] /* 题目大意:将 两个字符串 进行链接 */ 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 求次方 ## ![在这里插入图片描述][8037a463394b457cb13024e1d3aa00c2.png] /* 题目大意:求一个数字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 求阶乘 ## ![在这里插入图片描述][8dc458386ac64e4596534e7b439677d1.png] /* 题目大意:用递归的方法求整数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 求母牛数 ## ![在这里插入图片描述][f2d984299aee4f5f927c8eb9bfc9a5ca.png] //思维题一道 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 求素数 ## ![在这里插入图片描述][c5d8c80aeeaa409db787445612fb8f1b.png] //暴力 求素数 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 求最大值 ## ![在这里插入图片描述][692bcb5171b645f9a887c2fc2836da80.png] //暴力求最大值 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 数字求和 ## ![在这里插入图片描述][97e11d49cf3e4fd3a1d450d636907b3d.png] //暴力求解数字和 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 数字转换 ## ![在这里插入图片描述][5abe3e0fcb57463691b589b7c1615de1.png] //其实就是对 偶数 和 奇数的 不同操作 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 巫妖王的愤怒 ## ![在这里插入图片描述][64d6bbcc26364c1b8fb970c6bc48c9e5.png] 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 字符串逆序 ## ![在这里插入图片描述][27ce3d0103d6492b9b4fe7117a4ffa00.png] 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 字母统计 ## ![在这里插入图片描述][37e60b7c56384a808d196b4afc5c0674.png] 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~我们下期见喽 ![在这里插入图片描述][964d5c594e4c6ccea737be3c6b6bed4e.gif_pic_center] 如果无聊的话,就来逛逛我的博客栈吧[stack-frame.cn][] > ✨ 原创不易,还希望各位大佬支持一下 \\textcolor\{blue\}\{原创不易,还希望各位大佬支持一下\} 原创不易,还希望各位大佬支持一下 > > ? 点赞,你的认可是我创作的动力! \\textcolor\{9c81c1\}\{点赞,你的认可是我创作的动力!\} 点赞,你的认可是我创作的动力! > > ⭐️ 收藏,你的青睐是我努力的方向! \\textcolor\{ed7976\}\{收藏,你的青睐是我努力的方向!\} 收藏,你的青睐是我努力的方向! > > ✏️ 评论,你的意见是我进步的财富! \\textcolor\{98c091\}\{评论,你的意见是我进步的财富!\} 评论,你的意见是我进步的财富! > [fbb68a97dc324e398f77aeef3ef98b63.png]: https://image.dandelioncloud.cn/pgy_files/images/2024/04/24/b41868724c97427c96a60ee9ec796850.png [Link 1]: https://blog.csdn.net/congfen214/category_12111842.html?spm=1001.2014.3001.5482 [stack-frame.cn]: https://stack-frame.cn/ [ada21dc6e3f747179c35a026bbab162d.png]: https://image.dandelioncloud.cn/pgy_files/images/2024/04/24/7f19d89a2d484953a629f328da0b1e71.png [8764db70d5184a4491c12f3abb9a93fa.png]: https://image.dandelioncloud.cn/pgy_files/images/2024/04/24/2f8d645f8a1b4854bf77562ec2b675df.png [8155e1cd294d49b1b8a698901f04ea45.png]: https://image.dandelioncloud.cn/pgy_files/images/2024/04/24/306c1d67841246abb8e182df9c84cdf4.png [f313e4dc525a4bb0888a6aad711d573c.png]: https://image.dandelioncloud.cn/pgy_files/images/2024/04/24/de84f3b7310e4dadbb924a739d576429.png [16b2455f57fb458e83980a2b7b7070fd.png]: https://image.dandelioncloud.cn/pgy_files/images/2024/04/24/46779c75e467478ab3c5f07da54da2dc.png [a7f3862aa5de40c197bc49ca0d96150b.png]: https://image.dandelioncloud.cn/pgy_files/images/2024/04/24/95bbf8281c334545b3c992e60fc35368.png [f2e3e42a90cb408d99be44b2820fddfe.png]: https://image.dandelioncloud.cn/pgy_files/images/2024/04/24/b928b64fccaf4e94a22f6cceabcd73cb.png [504d8ae8006f4dc0bf046c9b47ea312c.png]: https://image.dandelioncloud.cn/pgy_files/images/2024/04/24/c8014b93f2bf4a0da1972d875d23b702.png [8037a463394b457cb13024e1d3aa00c2.png]: https://image.dandelioncloud.cn/pgy_files/images/2024/04/24/475675e0cb9e455d9a668046613c08a2.png [8dc458386ac64e4596534e7b439677d1.png]: https://image.dandelioncloud.cn/pgy_files/images/2024/04/24/ac9924271d9e4d1d9a5460321a22ea88.png [f2d984299aee4f5f927c8eb9bfc9a5ca.png]: https://image.dandelioncloud.cn/pgy_files/images/2024/04/24/4b76160dd55242aeaf56e1d39094d881.png [c5d8c80aeeaa409db787445612fb8f1b.png]: https://image.dandelioncloud.cn/pgy_files/images/2024/04/24/78bf8ce3ff7146068d8ee1429da83cd0.png [692bcb5171b645f9a887c2fc2836da80.png]: https://image.dandelioncloud.cn/pgy_files/images/2024/04/24/7af3f91264e84dc387b7359703dc2a20.png [97e11d49cf3e4fd3a1d450d636907b3d.png]: https://image.dandelioncloud.cn/pgy_files/images/2024/04/24/e791fbee683349538f6a1dd2fd734ef9.png [5abe3e0fcb57463691b589b7c1615de1.png]: https://image.dandelioncloud.cn/pgy_files/images/2024/04/24/72819ad0b3e44ec884aa67f8030712f7.png [64d6bbcc26364c1b8fb970c6bc48c9e5.png]: https://image.dandelioncloud.cn/pgy_files/images/2024/04/24/2ad9fec33d584f659bbd900eb6ae3893.png [27ce3d0103d6492b9b4fe7117a4ffa00.png]: https://image.dandelioncloud.cn/pgy_files/images/2024/04/24/79ff117aad034a35a858bee0f1fc9f00.png [37e60b7c56384a808d196b4afc5c0674.png]: https://image.dandelioncloud.cn/pgy_files/images/2024/04/24/051529a6173b455c85c49ac7f473601f.png [964d5c594e4c6ccea737be3c6b6bed4e.gif_pic_center]: https://image.dandelioncloud.cn/pgy_files/images/2024/04/24/22595cde0f56451481748f46b85da566.gif
相关 PTA第三章作业题 ![在这里插入图片描述][f4e0159841ab450d861dde9e8fb5ba0d.gif_pic_center] 文章目录 前言 7-1 比较大小 浅浅的花香味﹌/ 2024年03月01日 07:31/ 0 赞/ 36 阅读
相关 第六周作业 一.作业头文件 这个作业属于那个课程 C语言程序设计II 这个作业要求在哪里 [https://edu.cnblogs.com/campus/zswxy/compute ゝ一世哀愁。/ 2021年12月19日 17:53/ 0 赞/ 361 阅读
相关 第六周作业 2019年春季第六次作业 <table> <thead> <tr> <th>这个作业属于哪个课程</th> <th style="text-al 桃扇骨/ 2021年12月15日 09:45/ 0 赞/ 415 阅读
相关 第六章作业(1) 7-1 列出连通集 (30 分) 给定一个有N个顶点和E条边的无向图,请用DFS和BFS分别列出其所有的连通集。假设顶点从0到N−1编号。进行搜索时,假设我们总是从编号最小的 - 日理万妓/ 2021年12月01日 16:10/ 0 赞/ 403 阅读
相关 第六次作业 1. 概述 Selenium 测试直接在浏览器中运行,就像真实用户所做的一样。Selenium 测试可以在 Windows、Linux 和 Macint Myth丶恋晨/ 2021年11月26日 10:36/ 0 赞/ 385 阅读
还没有评论,来说两句吧...