
PTA
呼啸山庄:
努力学习,时间会证明一切
展开
-
第3章-9 字符串转换成十进制整数 (15 分)
输入一个以#结束的字符串,本题要求滤去所有的非十六进制字符(不分大小写),组成一个新的表示十六进制数字的字符串,然后将其转换为十进制数后输出。如果在第一个十六进制字符之前存在字符“-”,则代表该数是负数。输入格式:输入在一行中给出一个以#结束的非空字符串。输出格式:在一行中输出转换后的十进制数。题目保证输出在长整型范围内。输入样例:±P-xf4±1!#输出样例:-3905s=input()lst=[] #开一个新列表存十六进制字符flag=0 #判断正负号for i in range原创 2022-01-27 09:33:25 · 168 阅读 · 0 评论 -
第3章-2 查验身份证 (15 分)
一个合法的身份证号码由17位地区、日期编号和顺序编号加1位校验码组成。校验码的计算规则如下:首先对前17位数字加权求和,权重分配为:{7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2};然后将计算的和对11取模得到值Z;最后按照以下关系对应Z值与校验码M的值:Z:0 1 2 3 4 5 6 7 8 9 10M:1 0 X 9 8 7 6 5 4 3 2现在给定一些身份证号码,请你验证校验码的有效性,并输出有问题的号码。输入格式:输入第一行给出正整数N(≤100)是输入原创 2022-01-21 10:26:47 · 353 阅读 · 0 评论 -
PTA 7-19 模拟EXCEL排序 (25 分)
Excel可以对一组纪录按任意指定列排序。现请编写程序实现类似功能。输入格式:输入的第一行包含两个正整数N(≤10^5) 和C,其中N是纪录的条数,C是指定排序的列号。之后有 N行,每行包含一条学生纪录。每条学生纪录由学号(6位数字,保证没有重复的学号)、姓名(不超过8位且不包含空格的字符串)、成绩([0, 100]内的整数)组成,相邻属性用1个空格隔开。输出格式:在N行中输出按要求排序后的结果,即:当C=1时,按学号递增排序;当C=2时,按姓名的非递减字典序排序;当C=3时,按成绩的非递减排原创 2021-12-01 21:57:12 · 374 阅读 · 0 评论 -
7-2 堆栈操作合法性 (20 分) C++
假设以S和X分别表示入栈和出栈操作。如果根据一个仅由S和X构成的序列,对一个空堆栈进行操作,相应操作均可行(如没有出现删除时栈空)且最后状态也是栈空,则称该序列是合法的堆栈操作序列。请编写程序,输入S和X序列,判断该序列是否合法。输入格式:输入第一行给出两个正整数N和M,其中N是待测序列的个数,M(≤50)是堆栈的最大容量。随后N行,每行中给出一个仅由S和X构成的序列。序列保证不为空,且长度不超过100。输出格式:对每个序列,在一行中输出YES如果该序列是合法的堆栈操作序列,或NO如果不是。输入样原创 2021-10-03 20:46:35 · 546 阅读 · 0 评论 -
7-1 一元多项式求导 (20 分) C++
设计函数求一元多项式的导数。输入格式:以指数递降方式输入多项式非零项系数和指数(绝对值均为不超过1000的整数)。数字间以空格分隔。输出格式:以与输入相同的格式输出导数多项式非零项的系数和指数。数字间以空格分隔,但结尾不能有多余空格。输入样例:3 4 -5 2 6 1 -2 0结尾无空行输出样例:12 3 -10 1 6 0结尾无空行#include<iostream>#include<stack>using namespace std;int main(原创 2021-10-03 20:19:11 · 229 阅读 · 0 评论 -
实验7-1-12 组个最小数
给定数字0-9各若干个。你可以以任意顺序排列这些数字,但必须全部使用。目标是使得最后得到的数尽可能小(注意0不能做首位)。例如:给定两个0,两个1,三个5,一个8,我们得到的最小的数就是10015558。现给定数字,请编写程序输出能够组成的最小的数。输入格式:输入在一行中给出10个非负整数,顺序表示我们拥有数字0、数字1、……数字9的个数。整数间用一个空格分隔。10个数字的总个数不超过50,且至少拥有1个非0的数字。输出格式:在一行中输出能够组成的最小的数。输入样例:2 2 0 0 0 3 0原创 2021-02-21 11:02:58 · 134 阅读 · 0 评论 -
实验6-1 近似求PI (15 分)
本题要求编写程序,根据下式求π的近似值,直到最后一项小于给定精度eps。输入格式:输入在一行中给出精度eps,可以使用以下语句来读输入:scanf("%le", &eps);输出格式:在一行内,按照以下格式输出π的近似值(保留小数点后5位):PI = 近似值输入样例:1E-5输出样例:PI = 3.14158#include<stdio.h> //把1单独拿出来double fn(double n){ double i,k=1.0; for(原创 2021-02-03 09:52:26 · 430 阅读 · 0 评论 -
实验8-1-6 函数实现字符串逆序 (15分)
本题要求实现一个字符串逆序的简单函数。函数接口定义:void f( char *p );函数f对p指向的字符串进行逆序操作。要求函数f中不能定义任何数组,不能调用任何字符串处理函数。裁判测试程序样例:#include <stdio.h>#define MAXS 20void f( char *p );void ReadString( char *s ); /* 由裁判实现,略去不表 */int main(){ char s[MAXS]; ReadStri原创 2021-01-30 10:38:58 · 127 阅读 · 0 评论 -
实验11-1-9 藏尾诗
本题要求编写一个解密藏尾诗的程序。输入格式:输入为一首中文藏尾诗,一共四句。每句一行,但句子不一定是等长的,最短一个汉字,最长九个汉字。注意:一个汉字占两个字节。输出格式:取出每句的最后一个汉字并连接在一起形成一个字符串并输出。同时在末尾输入一个换行符。输入样例:悠悠田园风然而心难平兰花轻涌浪兰香愈幽静输出样例:风平浪静#include<stdio.h>#include<string.h>int main(){ char a[4][20],b[1原创 2021-01-27 11:39:10 · 1110 阅读 · 0 评论 -
实验6-9 统计一行文本的单词个数
本题目要求编写程序统计一行字符中单词的个数。所谓“单词”是指连续不含空格的字符串,各单词之间用空格分隔,空格数可以是多个。输入格式:输入给出一行字符。输出格式:在一行中输出单词个数。输入样例:Let’s go to room 209.输出样例:5#include<stdio.h>int main(){ char a[1000]; gets(a); int l,num=0; for(int i=0;i<strlen(a);i++) { if(a[i]!='原创 2021-01-27 09:39:42 · 136 阅读 · 0 评论 -
实验4-1-8 求给定精度的简单交错序列部分和
本题要求编写程序,计算序列部分和 1 - 1/4 + 1/7 - 1/10 + … 直到最后一项的绝对值不大于给定精度eps。输入格式:输入在一行中给出一个正实数eps。输出格式:在一行中按照“sum = S”的格式输出部分和的值S,精确到小数点后六位。题目保证计算结果不超过双精度范围。输入样例1:4E-2输出样例1:sum = 0.854457输入样例2:0.02输出样例2:sum = 0.826310#include<stdio.h>int main(){ d原创 2021-01-22 17:20:22 · 134 阅读 · 0 评论 -
实验4-1-6 求分数序列前N项和
本题要求编写程序,计算序列 2/1+3/2+5/3+8/5+… 的前N项之和。注意该序列从第2项起,每一项的分子是前一项分子与分母的和,分母是前一项的分子。输入格式:输入在一行中给出一个正整数N。输出格式:在一行中输出部分和的值,精确到小数点后两位。题目保证计算结果不超过双精度范围。输入样例:20输出样例:32.66类似于斐波那契数列的写法,显然需要另外的变量 f3 f1=1,f2=1; scanf("%d",&n); for(i=1;i<=n;i原创 2021-01-22 16:50:01 · 546 阅读 · 0 评论