PTA
Dogboss233
一事无成的大人
展开
-
PTA python字符串转化为十进制整数(int函数的使用细节)
输入一个以#结束的字符串,本题要求滤去所有的非十六进制字符(不分大小写),组成一个新的表示十六进制数字的字符串,然后将其转换为十进制数后输出。如果在第一个十六进制字符之前存在字符“-”,则代表该数是负数。输入格式:输入在一行中给出一个以#结束的非空字符串。输出格式:在一行中输出转换后的十进制数。题目保证输出在长整型范围内。输入样例:+-P-xf4+-1!#输出样例:-3905解决方案:s = input()l = ''for i in range(len(s)): if(原创 2021-06-23 13:43:12 · 623 阅读 · 2 评论 -
有感而发,
写对了,好耶。原创 2021-05-27 14:21:54 · 74 阅读 · 0 评论 -
PTA python 矩阵运算
给定一个n×n的方阵,本题要求计算该矩阵除副对角线、最后一列和最后一行以外的所有元素之和。副对角线为从矩阵的右上角至左下角的连线。输入格式:输入第一行给出正整数n(1<n≤10);随后n行,每行给出n个整数,其间以空格分隔。输出格式:在一行中给出该矩阵除副对角线、最后一列和最后一行以外的所有元素之和。输入样例:42 3 4 15 6 1 17 1 8 11 1 1 1输出样例:35n = int(input())l = []sum = 0for i in range原创 2021-05-27 13:11:48 · 914 阅读 · 0 评论 -
PTA python 求分数序列前N项和
本题要求编写程序,计算序列 2/1+3/2+5/3+8/5+… 的前N项之和。注意该序列从第2项起,每一项的分子是前一项分子与分母的和,分母是前一项的分子。输入格式:输入在一行中给出一个正整数N。输出格式:在一行中输出部分和的值,精确到小数点后两位。题目保证计算结果不超过双精度范围。输入样例:20输出样例:32.66n = int(input())a,b = 2,1sum = 2/1for i in range(1,n): a,b = a+b,a sum+=a/b原创 2021-05-25 11:20:56 · 9405 阅读 · 1 评论 -
PTA python 输出前 n 个Fibonacci数
本题要求编写程序,输出菲波那契(Fibonacci)数列的前N项,每行输出5个,题目保证输出结果在长整型范围内。Fibonacci数列就是满足任一项数字是前两项的和(最开始两项均定义为1)的数列,例如:1,1,2,3,5,8,13,…。输入格式:输入在一行中给出一个整数N(1≤N≤46)。输出格式:输出前N个Fibonacci数,每个数占11位,每行输出5个。如果最后一行输出的个数不到5个,也需要换行。如果N小于1,则输出"Invalid."输入样例1:7输出样例1: 1原创 2021-05-25 10:58:30 · 1821 阅读 · 0 评论 -
PTA python 统计学生平均成绩与及格人数
本题要求编写程序,计算学生们的平均成绩,并统计及格(成绩不低于60分)的人数。题目保证输入与输出均在整型范围内。输入格式:输入在第一行中给出非负整数N,即学生人数。第二行给出N个非负整数,即这N位学生的成绩,其间以空格分隔。输出格式:按照以下格式输出:average = 成绩均值count = 及格人数其中平均值精确到小数点后一位。输入样例:577 54 92 73 60输出样例:average = 71.2count = 4n = int(input())if n==0:原创 2021-05-23 22:16:50 · 4077 阅读 · 3 评论 -
PTA python 验证哥德巴赫猜想
数学领域著名的“哥德巴赫猜想”的大致意思是:任何一个大于2的偶数总能表示为两个素数之和。比如:24=5+19,其中5和19都是素数。本实验的任务是设计一个程序,验证20亿以内的偶数都可以分解成两个素数之和。输入格式:输入在一行中给出一个(2, 2 000 000 000]范围内的偶数N。输出格式:在一行中按照格式“N = p + q”输出N的素数分解,其中p ≤ q均为素数。又因为这样的分解不唯一(例如24还可以分解为7+17),要求必须输出所有解中p最小的解。输入样例:24输出样例:24原创 2021-05-23 09:33:46 · 1836 阅读 · 0 评论 -
PTA python 判断回文字符串
输入一个字符串,判断该字符串是否为回文。回文就是字符串中心对称,从左向右读和从右向左读的内容是一样的。输入格式:输入在一行中给出一个不超过80个字符长度的、以回车结束的非空字符串。输出格式:输出在第1行中输出字符串。如果它是回文字符串,在第2行中输出Yes,否则输出No。输入样例1:level输出样例1:levelYes输入样例2:1 + 2 = 2 + 1 =输出样例2:1 + 2 = 2 + 1 =Nos = input()print(s)l = len(s)原创 2021-05-19 10:56:52 · 4914 阅读 · 3 评论 -
PTA python 逆序的三位数
程序每次读入一个正3位数,然后输出按位逆序的数字。注意:当输入的数字含有结尾的0时,输出不应带有前导的0。比如输入700,输出应该是7。输入格式:每个测试是一个3位的正整数。输出格式:输出按位逆序的数。输入样例:123输出样例:321这个题的最明显的坑题目已经点明了:700倒过来是7。所以首先浮现出来的方法应该是int()是最简单的开头去0在各种网站上大概找到了三种方法,在此都放上来:print(int(input()[::-1]))这种是最简单的方法。因为逆序输出,所以直接原创 2021-05-18 20:27:16 · 2110 阅读 · 1 评论 -
PTA python 输出10个不重复的英文字母
随机输入一个字符串,把最左边的10个不重复的英文字母(不区分大小写)挑选出来。 如没有10个英文字母,显示信息“not found”输入格式:在一行中输入字符串输出格式:在一行中输出最左边的10个不重复的英文字母或显示信息“not found"输入样例1:在这里给出一组输入。例如:poemp134567输出样例1:在这里给出相应的输出。例如:not found输入样例2在这里给出一组输入。例如:This 156is a test example输出样例2:在这里给出相应的原创 2021-05-18 19:37:36 · 1143 阅读 · 0 评论 -
PTA C语言程序设计——递归求阶乘和
直接转载大佬文章吧原文在此转载 2021-04-29 22:14:07 · 785 阅读 · 0 评论 -
PTA C语言程序设计——使用递归函数计算1到n之和
本题要求实现一个用递归计算1+2+3+…+n的和的简单函数。函数接口定义:int sum( int n );该函数对于传入的正整数n返回1+2+3+…+n的和;若n不是正整数则返回0。题目保证输入输出在长整型范围内。建议尝试写成递归函数。裁判测试程序样例:#include <stdio.h>int sum( int n );int main(){ int n; scanf("%d", &n); printf ("%d\n", sum(n))原创 2021-04-29 21:30:53 · 2692 阅读 · 0 评论 -
PTA C语言程序设计——报数(是想象不到的解决方法)
习题8-4 报数 (20 分)报数游戏是这样的:有n个人围成一圈,按顺序从1到n编好号。从第一个人开始报数,报到m(<n)的人退出圈子;下一个人从1开始报数,报到m的人退出圈子。如此下去,直到留下最后一个人。本题要求编写函数,给出每个人的退出顺序编号。函数接口定义:void CountOff( int n, int m, int out[] );其中n是初始人数;m是游戏规定的退出位次(保证为小于n的正整数)。函数CountOff将每个人的退出顺序编号存在数组out[]中。因为C语言数组下转载 2021-04-20 19:42:21 · 456 阅读 · 0 评论 -
PTA C语言程序设计——逆序输出
习题6-6 使用函数输出一个整数的逆序数 (20 分)本题要求实现一个求整数的逆序数的简单函数。函数接口定义:int reverse( int number );其中函数reverse须返回用户传入的整型number的逆序数。裁判测试程序样例:#include <stdio.h>int reverse( int number );int main(){ int n; scanf("%d", &n); printf("%d\n", reve转载 2021-04-18 17:30:04 · 1852 阅读 · 0 评论 -
今日get新函数~
整形数据转换为字符型数据#include <stdio.h>#include <stdlib.h>int main (){ int n; char s[100]; scanf("%d",&n); printf("%s",itoa(n,s,10));itoa()函数有3个参数:第一个参数是要转换的数字,第二个参数是要写入转换结果的目标字符串,第三个参数是转移数字时所用的基数。10:十进制;2:二进制…...原创 2021-04-18 16:48:55 · 91 阅读 · 2 评论 -
PTA C语言程序设计——斐波那契数列
习题6-4 使用函数输出指定范围内的Fibonacci数 (20 分)本题要求实现一个计算Fibonacci数的简单函数,并利用其实现另一个函数,输出两正整数m和n(0<m≤n≤10000)之间的所有Fibonacci数。所谓Fibonacci数列就是满足任一项数字是前两项的和(最开始两项均定义为1)的数列。函数接口定义:int fib( int n );void PrintFN( int m, int n );其中函数fib须返回第n项Fibonacci数;函数PrintFN要在一行中输原创 2021-04-18 12:50:27 · 4367 阅读 · 2 评论 -
PTA
习题7-2 求一批整数中出现最多的个位数字 (20 分)给定一批整数,分析每个整数的每一位数字,求出现次数最多的个位数字。例如给定3个整数1234、2345、3456,其中出现最多次数的数字是3和4,均出现了3次。输入格式:输入在第1行中给出正整数N(≤1000),在第二行中给出N个不超过整型范围的非负整数,数字间以空格分隔。输出格式:在一行中按格式“M: n1 n2 …”输出,其中M是最大次数,n1、n2、……为出现次数最多的个位数字,按从小到大的顺序排列。数字间以空格分隔,但末尾不得有多余空格原创 2021-04-15 13:43:54 · 83 阅读 · 0 评论 -
PTA 字符串逆序 解决输入输出空格问题
练习7-11 字符串逆序 (15 分)输入一个字符串,对该字符串进行逆序,输出逆序后的字符串。输入格式:输入在一行中给出一个不超过80个字符长度的、以回车结束的非空字符串。输出格式:在一行中输出逆序后的字符串。输入样例:Hello World!输出样例:!dlroW olleH#include <stdio.h>#include <string.h>int main (){ char a[81]; int i; gets(a);原创 2021-04-15 12:42:14 · 925 阅读 · 0 评论 -
PTA 查找指定字符输入问题
练习7-10 查找指定字符 (15 分)本题要求编写程序,从给定字符串中查找某指定的字符。输入格式:输入的第一行是一个待查找的字符。第二行是一个以回车结束的非空字符串(不超过80个字符)。输出格式:如果找到,在一行内按照格式“index = 下标”输出该字符在字符串中所对应的最大下标(下标从0开始);否则输出"Not Found"。输入样例1:mprogramming输出样例1:index = 7输入样例2:a1234输出样例2:Not Found#include <s原创 2021-04-15 12:33:41 · 330 阅读 · 0 评论 -
PTA C语言程序设计(第三版)练习7-8方阵循环右移——整体概念
本题要求编写程序,将给定n×n方阵中的每个元素循环向右移m个位置,即将第0、1、⋯、n−1列变换为第n−m、n−m+1、⋯、n−1、0、1、⋯、n−m−1列。输入格式:输入第一行给出两个正整数m和n(1≤n≤6)。接下来一共n行,每行n个整数,表示一个n阶的方阵。输出格式:按照输入格式输出移动后的方阵:即输出n行,每行n个整数,每个整数后输出一个空格。输入样例:2 31 2 34 5 67 8 9输出样例:2 3 15 6 48 9 7#include <stdio.h&g原创 2021-04-14 13:04:55 · 266 阅读 · 0 评论 -
天梯赛L1-016检验身份证—如何一次输入“四个”数据(整体观念)
天梯赛L1-016查验身份证(注意看注释!!!)一个合法的身份证号码由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现在给定一些身份证号码,请你验证校验码的有效性,并输出有问题的号码。输入.原创 2021-04-13 21:59:54 · 141 阅读 · 0 评论 -
天梯赛L1-003个位数统计—存一个较大的数
#include <stdio.h>#include <string.h>void jilu(int n[],int len,int s[]); //函数声明int main (){ int len; int s[10]={0}; int n[1010]={0}; char a[1010]={0}; int i,k; scanf("%s",a); //如何记录数字大的数 len = strlen(a); .原创 2021-04-13 20:39:41 · 65 阅读 · 2 评论 -
天梯赛L1-008求整数段的和缺少i==b的问题
小白新get的小套路@Dogboss的原创博客#include <stdio.h> int main () { int i,a,b,sum=0; scanf("%d %d",&a,&b); for(i=a;i<=b;i++){ sum+=i; printf("%5d",i); if((i-a+1)%5==0||i==b) //在这里i==b这个就可以解决测试点2格式错误的问题 printf("\n"); } printf("Sum = %d",sum); return 0原创 2021-04-10 20:50:31 · 90 阅读 · 2 评论