
PTA
Every DAV inci
这个作者很懒,什么都没留下…
展开
-
素数判断方法的改进迭代
三种方法的时间复杂度从O(n) -> O( log(n) ) -> O( log(n) / 2 )效率是在一步步的提高的。原创 2022-10-27 00:59:30 · 251 阅读 · 0 评论 -
一个for循环计算阶乘和
在前面一个阶乘已经算出来的基础上, 只需要乘以一个更新过的i, 就可以得到下一个数的阶乘。但是阶乘的计算具有连续性, 即一个数的阶乘只需要在前一个数的阶乘的基础上再乘上一个数。平常我们都习惯了用两个for循环或者是定义一个fact(i)但fact函数中的实现也是一个for循环。所以可以用一个for循环解决问题。所以实质上都是两个for循环。即4的阶乘等于3的阶乘乘以4。一个for计算一个数的阶乘。原创 2022-10-23 22:16:49 · 2031 阅读 · 0 评论 -
7-2 换硬币 (20分)
要求按5分、2分和1分硬币的数量依次从大到小的顺序,输出各种换法。每行输出一种换法,格式为:“fen5:5分硬币数量, fen2:2分硬币数量, fen1:1分硬币数量, total:硬币总数量”。所以在计算某一种硬币时的数量上限时,就可以用总数将其他两枚硬币的数值下限的和减掉。相较于直接用总数值去除以硬币数值得到硬币的数量上限的计算方法来说。输入在一行中给出待换的零钱数额x∈(8,100)。这题要判断一下不同数值的硬币换取的上限。2分和1分硬币的数值上限计算也是这样。这种方法能减少一些判断次数。原创 2022-10-21 15:23:24 · 505 阅读 · 0 评论 -
PTA-统计一批学生的平均成绩与不及格人数
输入在一行中给出一系列非负实数,其间以空格分隔。当读到负实数时,表示输入结束,该数字不要处理。其中平均值精确到小数点后两位,等号的左右各有一个空格。之前写的没有在过程中计算average。但是由于某些规范原因在PTA中会显示。关于这题,PTA的判题格式有些严格。以下代码没有问题可以AC。在编译器中可以正常运行。原创 2022-10-20 09:03:15 · 2773 阅读 · 0 评论 -
稀疏矩阵知识点总结
如果但题目后句又规定了a[i, j](i原创 2022-09-23 22:17:08 · 664 阅读 · 0 评论 -
三元组表示的稀疏矩阵转置(编程题)
两个矩阵要同时分别进行三元组中元素的检索和赋值,所以定义两个变量来分别表示两个三元组中元素的位置,并且最后要进行变量的更新。首先要初始化一个以三元组形式表示的矩阵,存储原矩阵的转置矩阵,即创建了一个结构体变量要为该结构体变量开辟空间。表示一个系数矩阵的思路:先以三元组的形式将稀疏矩阵进行构建, 再对整个稀疏矩阵中的节点属性进行表示。通过矩阵的列序进行索引,在每一列中都对三元表中的元素进行检索,检索到就进行行列下标的互换并赋原值。在该步骤中要注意两个结构体变量之间的引用关系,首先从。原创 2022-09-23 22:14:06 · 1668 阅读 · 0 评论 -
7-2-6 方阵循环右移 (20 分)
7-2-6 方阵循环右移 (20 分)记录一个很好的思路:/*这个题目分成两部分输出就好考虑多了*/ #include<stdio.h>int main(){ int a[10][10],i,j,n,m; scanf("%d %d",&m,&n); for(i=0;i<n;i++) for(j=0;j<n;j++) scanf("%d",&a[i][j]); m=m%n; //可能会出现m比n还大所以取余数 for(i=0;i&l原创 2021-12-26 12:14:24 · 866 阅读 · 0 评论 -
7-1-9 交换最小值和最大值 (15 分)
交换最大值和最小值从大一到现在也写了不少题了,也积累了一些经验,形成了自己的一些刷题的风格,也还是一直会出现一些问题,有的问题是因为既有的习惯风格为了让思路清晰、代码较为规整会尽可能的减少变量的使用。这一题就是这样,总是试图用一个变量去完成一个乃至多个功能,使得代码看起来简洁,但是有时候有些变量必须使用。这是一道看起来很简单的题,只有一点点的小弯,这个小弯就是下标以及相对应的值的存储和交换,多定义一个变量用来存储交换就好。#include<stdio.h>//先让最小值和第一个数交换,原创 2021-12-26 08:25:49 · 3597 阅读 · 3 评论 -
判断一个数高位到低位是否是从小到大排列
判断一个数高位到低位是否是从小到大排列输入一批正整数(以零或负数为结束标志),判断每个数从高位到低位的各位数字是否按值从小到大排列。要求定义和调用函数fun(m)判断m中各位数字是否按值从小到大排列,满足条件返回1,否则返回0。#include <stdio.h>int fun(int n){ int old_digit = 10; int cur_digit; while(n > 0) { cur_digit = n % 10;原创 2021-12-11 13:28:52 · 5658 阅读 · 0 评论 -
7-1-1 简化的插入排序 (15 分)
7-1-1 简化的插入排序 (15 分)本题要求编写程序,将一个给定的整数插到原本有序的整数序列中,使结果序列仍然有序。输入格式:输入在第一行先给出非负整数N(<10);第二行给出N个从小到大排好顺序的整数;第三行给出一个整数X。输出格式:在一行内输出将X插入后仍然从小到大有序的整数序列,每个数字后面有一个空格。输入样例:51 2 4 5 73结尾无空行输出样例:1 2 3 4 5 7 结尾无空行代码:#include<stdio.h>int main原创 2021-11-30 09:15:57 · 780 阅读 · 1 评论 -
7-1 近似求PI (15 分)
7-1 近似求PI (15 分)本题要求编写程序,根据下式求π的近似值,直到最后一项小于给定精度eps。2π=1+31!+3×52!+3×5×73!+⋯+3×5×⋯×(2×i+1)i!+⋯输入格式:输入在一行中给出精度eps,可以使用以下语句来读输入:scanf("%le", &eps);输出格式:在一行内,按照以下格式输出π的近似值(保留小数点后5位):PI = 近似值输入样例:1E-5结尾无空行输出样例:PI = 3.14158结尾无空行代码:#inclu原创 2021-11-29 00:11:09 · 4668 阅读 · 0 评论 -
7-2 单词首字母大写 (15 分)
本题目要求编写程序,输入一行字符,将每个单词的首字母改为大写后输出。所谓“单词”是指连续不含空格的字符串,各单词之间用空格分隔,空格数可以是多个。原创 2021-11-29 00:10:34 · 11584 阅读 · 6 评论 -
6-8 使用函数求余弦函数的近似值 (15 分)
/**写一个方法解析,便于以后的理解这个题跟其他的循环题最大的不同就是在循环变量的同时还有一个求阶乘的要求,所以要在一个函数中完成看似要两个函数完成的要求那么只需要在while中写一个求阶乘的方法就可以了初始化的值都是第二次要用到的值,也就是默认第一项执行过的值为初始值之后在变量的求值和变化中要注意顺序这题就是先变化分母,因为分母要通过阶乘来求得,其中要写一个for循环,写前面可以让程序看起来好看一点再求分子再求某一项的值再求sum,在求sum中乘上正负符号变量因为分母每一次要加2然..原创 2021-11-27 23:12:06 · 7552 阅读 · 8 评论 -
PTA 4-2-6 找完数 (20 分)
在做循环题的时候经常碰到的题型就是要你做取余运算,这时候通常要把原数存储起来,为了后面做判断用或者其他用。原创 2021-11-13 19:26:02 · 2548 阅读 · 0 评论 -
求两个数的最大公约数和最小公倍数
当a和b均为奇数,利用更相减损术运算一次,gcb(a,b) = gcb (b, a-b), 此时a-b必然是偶数,又可以继续进行移位运算。这个方法真的是很厉害,但是有点难理解,对于原理的理解比较重要,但其实最常用的还是辗转相除法和更相减损术。当a为偶数,b为奇数,gcb(a,b) = gcb(a/2, b) = gcb (a>>1, b)当a为奇数,b为偶数,gcb(a,b) = gcb(a, b/2) = gcb (a, b>>1)一会再写一种递归的思想,代码会更简洁,递归很重要!怎么求最小公倍数呢?原创 2021-10-29 18:05:49 · 1646 阅读 · 0 评论