![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
我的学习PTA
我的入门到入土
qnhnt
这个作者很懒,什么都没留下…
展开
-
PTA7-27 兔子繁衍问题 (15 分)
一对兔子,从出生后第3个月起每个月都生一对兔子。小兔子长到第3个月后每个月又生一对兔子。假如兔子都不死,请问第1个月出生的一对兔子,至少需要繁衍到第几个月时兔子总数才可以达到N对?输入格式:输入在一行中给出一个不超过10000的正整数N。输出格式:在一行中输出兔子总数达到N最少需要的月数。输入样例:30结尾无空行输出样例:9结尾无空行其实就是Fibonacci数列问题,从第三月起的兔子数量等于前两项之和。 1, 1, 2, 3,...原创 2021-12-25 14:27:12 · 2235 阅读 · 0 评论 -
7-24 猜数字游戏 (15 分)
PTA猜数字游戏原创 2021-12-12 22:11:00 · 103 阅读 · 0 评论 -
PTA7-32 求交错序列前N项和 (15 分)
本题要求编写程序,计算交错序列 1-2/3+3/5-4/7+5/9-6/11+... 的前N项之和。输入格式:输入在一行中给出一个正整数N。输出格式:在一行中输出部分和的值,结果保留三位小数。输入样例:5结尾无空行输出样例:0.917结尾无空行#include<stdio.h>int main(){ int n; double i,j,sum=0; double sign=1.0; scanf(.原创 2021-11-27 17:44:52 · 624 阅读 · 0 评论 -
7-76 计算分段函数[3] (10 分)
本题目要求计算下列分段函数f(x)的值:输入格式:输入在一行中给出实数x。输出格式:在一行中按“f(x) = result”的格式输出,其中x与result都保留一位小数。输入样例1:10结尾无空行输出样例1:f(10.0) = 0.1结尾无空行输入样例2:234输出样例2:f(234.0) = 234.0#include<stdio.h>int main(){ int x; double y;.原创 2021-11-27 16:12:13 · 535 阅读 · 0 评论 -
PTA7-52 求简单交错序列前N项和 (15 分)
本题要求编写程序,计算序列 1 - 1/4 + 1/7 - 1/10 + ... 的前N项之和。输入格式:输入在一行中给出一个正整数N。输出格式:在一行中按照“sum = S”的格式输出部分和的值S,精确到小数点后三位。题目保证计算结果不超过双精度范围。输入样例:10结尾无空行输出样例:sum = 0.819结尾无空行#include<stdio.h>int main(){ int n,i,j=1; double sign=1原创 2021-11-27 15:50:18 · 766 阅读 · 0 评论 -
7-25 求奇数和 (15 分)PTA
本题要求计算给定的一系列正整数中奇数的和。输入格式:输入在一行中给出一系列正整数,其间以空格分隔。当读到零或负整数时,表示输入结束,该数字不要处理。输出格式:在一行中输出正整数序列中奇数的和。输入样例:8 7 4 3 70 5 6 101 -1结尾无空行输出样例:116结尾无空行#include<stdio.h>int main(){ int num,sum=0,i=0; scanf("%d",&num); w原创 2021-11-25 23:09:34 · 421 阅读 · 0 评论 -
PTA 7-37 输出整数各位数字 (15 分)
本题要求编写程序,对输入的一个整数,从高位开始逐位分割并输出它的各位数字。输入格式:输入在一行中给出一个长整型范围内的非负整数。输出格式:从高位开始逐位输出该整数的各位数字,每个数字后面有一个空格。输入样例:123456结尾无空行输出样例:1 2 3 4 5 6 #include<stdio.h>int main(){ int n,count=1,w; scanf("%d",&n); w=n; while(原创 2021-11-18 21:44:40 · 15639 阅读 · 11 评论 -
PTA翁恺:7-122 3n+1 (10 分)
有这样一个猜想:对于任意大于1的自然数n,若n为奇数,则将n变成3n+1,否则变成n的一半。经过若干次这样的变换,一定会使n变为1。例如3->10->5->16->8->4->2->1。对于n=1的情况,当然就不用变化了。输入格式:输入一个正整数n,n的范围是[1,999999]。输出格式:输出变换的次数。输入样例:3结尾无空行输出样例:7结尾无空行#include<stdio.h>int main()原创 2021-11-16 21:31:50 · 769 阅读 · 0 评论 -
7-36 韩信点兵 (10 分)
在中国数学史上,广泛流传着一个“韩信点兵”的故事:韩信是汉高祖刘邦手下的大将,他英勇善战,智谋超群,为汉朝建立了卓越的功劳。据说韩信的数学水平也非常高超,他在点兵的时候,为了知道有多少兵,同时又能保住军事机密,便让士兵排队报数:按从1至5报数,记下最末一个士兵报的数为1; 再按从1至6报数,记下最末一个士兵报的数为5; 再按从1至7报数,记下最末一个士兵报的数为4; 最后按从1至11报数,最末一个士兵报的数为10;请编写程序计算韩信至少有多少兵。输入格式:本题无输入输出格式:输出原创 2021-11-16 09:08:38 · 367 阅读 · 0 评论 -
PTA:7-119 我是升旗手 (10 分)
一年一度的升旗手选拔又要到了,学校要求每个班级选出一位同学做升旗手的候选人。因 为升旗手对身高有严格的要求,所以班主任决定选班级里个子最高的同学(如果两位同学 一样高,则选任意一位)。你能很快地给老师答案么?输入格式:输入包括两行。 第一行:包括一个整数n,表示班级里共有n位同学。 第二行:包含n个三位数,表示每一位同学的身高。输出格式:输出身高最高的同学的身高。输入样例:4130 125 129 140结尾无空行输出样例:140结尾无空行#include原创 2021-11-14 15:11:45 · 1127 阅读 · 0 评论 -
额7-73 比较大小 (10 分)
本题要求将输入的任意3个整数从小到大输出。输入格式:输入在一行中给出3个整数,其间以空格分隔。输出格式:在一行中将3个整数从小到大输出,其间以“->”相连。输入样例:4 2 8结尾无空行输出样例:2->4->8结尾无空行#include <stdio.h>int main(){ int a,b,c; int min=0,med=0,max=0; scanf("%d %d %d",&a,&原创 2021-11-11 23:49:17 · 319 阅读 · 0 评论 -
[相减法]7-26 最大公约数和最小公倍数 (15 分)
本题要求两个给定正整数的最大公约数和最小公倍数。输入格式:输入在一行中给出两个正整数M和N(≤1000)。输出格式:在一行中顺序输出M和N的最大公约数和最小公倍数,两数字间以1空格分隔。输入样例:511 292结尾无空行输出样例:73 2044结尾无空行#include <stdio.h>int main(){ int m,n,a,b; scanf("%d %d",&m,&n); a=m; b=原创 2021-11-11 11:43:15 · 272 阅读 · 0 评论 -
7-78 计算油费 (15 分)
现在90号汽油6.95元/升、93号汽油7.44元/升、97号汽油7.93元/升。为吸引顾客,某自动加油站推出了“自助服务”和“协助服务”两个服务等级,分别可得到5%和3%的折扣。本题要求编写程序,根据输入顾客的加油量a,汽油品种b(90、93或97)和服务类型c(m - 自助,e - 协助),计算并输出应付款。输入格式:输入在一行中给出两个整数和一个字符,分别表示顾客的加油量a,汽油品种b(90、93或97)和服务类型c(m - 自助,e - 协助)。输出格式:在一行中输出应付款额,保原创 2021-11-09 08:53:21 · 337 阅读 · 0 评论 -
7-40 到底是不是太胖了 (10 分)
据说一个人的标准体重应该是其身高(单位:厘米)减去100、再乘以0.9所得到的公斤数。真实体重与标准体重误差在10%以内都是完美身材(即 | 真实体重−标准体重 |<标准体重×10%)。已知市斤是公斤的两倍。现给定一群人的身高和实际体重,请你告诉他们是否太胖或太瘦了。输入格式:输入第一行给出一个正整数N(≤20)。随后N行,每行给出两个整数,分别是一个人的身高H(120<H<200;单位:厘米)和真实体重W(50<W≤300;单位:市斤),其间以空格...原创 2021-11-07 21:04:37 · 68 阅读 · 0 评论 -
7-77 求1到100的和 (10 分)
本题要求编写程序,计算表达式 1 + 2 + 3 + ... + 100 的值。输入格式:本题无输入。输出格式:按照以下格式输出:sum = 累加和#include <stdio.h>int main(){ int sum,i; for(sum=0,i=1;i<=100;i++){ sum=sum+i; } printf("sum = %d",sum); return 0;}...原创 2021-11-07 21:03:22 · 309 阅读 · 0 评论 -
7-18 出租车计价 (15 分)
本题要求根据某城市普通出租车收费标准编写程序进行车费计算。具体标准如下:起步里程为3公里,起步费10元; 超起步里程后10公里内,每公里2元; 超过10公里以上的部分加收50%的回空补贴费,即每公里3元; 营运过程中,因路阻及乘客要求临时停车的,按每5分钟2元计收(不足5分钟则不收费)。输入格式:输入在一行中给出输入行驶里程(单位为公里,精确到小数点后1位)与等待时间(整数,单位为分钟),其间以空格分隔。输出格式:在一行中输出乘客应支付的车费(单位为元),结果四舍五入,保留到元。原创 2021-11-06 23:43:39 · 51 阅读 · 0 评论 -
7-100 逆序的三位数 (10 分)
程序每次读入一个正3位数,然后输出按位逆序的数字。注意:当输入的数字含有结尾的0时,输出不应带有前导的0。比如输入700,输出应该是7。输入格式:每个测试是一个3位的正整数。输出格式:输出按位逆序的数。输入样例:123结尾无空行输出样例:321结尾无空行#include <stdio.h>int main(){ int a,c; int b,s,g; scanf("%d",&a); b=a%10;原创 2021-11-05 23:44:07 · 113 阅读 · 0 评论 -
7-62 计算物体自由下落的距离 (5 分)
一个物体从100米的高空自由落下。编写程序,求它在前3秒内下落的垂直距离。设重力加速度为10米/秒2。输入格式:本题目没有输入。输出格式:按照下列格式输出height = 垂直距离值结果保留2位小数。#include <stdio.h>int main(){ double h; h=0.5*10.0*3.0*3.0; printf("height = %.2f",h); return 0;}...原创 2021-11-05 23:42:54 · 1025 阅读 · 0 评论 -
7-54 求阶乘序列前N项和 (15 分)
本题要求编写程序,计算序列1!+2!+3!+⋯的前N项之和。输入格式:输入在一行中给出一个不超过12的正整数N。输出格式:在一行中输出整数结果。输入样例:5结尾无空行输出样例:153结尾无空行#include <stdio.h>int main(){ int a=1,n,sum=0,i; scanf("%d",&n); for(i=1;i<=n;i++){ a=a*i; ..原创 2021-11-05 23:41:54 · 3778 阅读 · 0 评论 -
7-51 求奇数分之一序列前N项和 (15 分)
本题要求编写程序,计算序列 1 + 1/3 + 1/5 + ... 的前N项之和。输入格式:输入在一行中给出一个正整数N。输出格式:在一行中按照“sum = S”的格式输出部分和的值S,精确到小数点后6位。题目保证计算结果不超过双精度范围。输入样例:23结尾无空行输出样例:sum = 2.549541#include <stdio.h>int main(){ int n,i; double sum=0.0,p;//p还必须是dou原创 2021-11-05 23:41:13 · 281 阅读 · 0 评论 -
7-41 计算阶乘和 (10 分)
对于给定的正整数N,需要你计算S=1!+2!+3!+...+N!。输入格式:输入在一行中给出一个不超过10的正整数N。输出格式:在一行中输出S的值。输入样例:3结尾无空行输出样例:9结尾无空行#include <stdio.h>int main(){ int n,s=1,i=1,d=0; scanf("%d",&n); while(1){ s=s*i; i++; .原创 2021-11-05 23:39:43 · 147 阅读 · 0 评论 -
7-28 求整数的位数及各位数字之和 (15 分)
对于给定的正整数N,求它的位数及其各位数字之和。输入格式:输入在一行中给出一个不超过109的正整数N。输出格式:在一行中输出N的位数及其各位数字之和,中间用一个空格隔开。输入样例:321结尾无空行输出样例:3 6结尾无空行#include <stdio.h>int main(){ int n,count=0,sum=0; scanf("%d",&n); while(n>0){ sum=su原创 2021-11-05 23:38:40 · 60 阅读 · 0 评论 -
7-23 分段计算居民水费 (10 分)
为鼓励居民节约用水,自来水公司采取按用水量阶梯式计价的办法,居民应交水费y(元)与月用水量x(吨)相关:当x不超过15吨时,y=4x/3;超过后,y=2.5x−17.5。请编写程序实现水费的计算。输入格式:输入在一行中给出非负实数x。输出格式:在一行输出应交的水费,精确到小数点后2位。输入样例1:12结尾无空行输出样例1:16.00结尾无空行输入样例2:16输出样例2:22.50#include <stdio.h>int m原创 2021-11-05 23:37:54 · 198 阅读 · 2 评论 -
7-22 用天平找小球 (10 分)
三个球A、B、C,大小形状相同且其中有一个球与其他球重量不同。要求找出这个不一样的球。输入格式:输入在一行中给出3个正整数,顺序对应球A、B、C的重量。输出格式:在一行中输出唯一的那个不一样的球。输入样例:1 1 2结尾无空行输出样例:C结尾无空行#include <stdio.h>int main(){ int A,B,C; scanf("%d %d %d",&A,&B,&C); if (A=原创 2021-11-05 23:36:56 · 81 阅读 · 0 评论 -
7-17 成绩转换 (15 分)
世界上不同国家有不同的写日期的习惯。比如美国人习惯写成“月-日-年”,而中国人习惯写成“年-月-日”。下面请你写个程序,自动把读入的美国格式的日期改写成中国习惯的日期。输入格式:输入在一行中按照“mm-dd-yyyy”的格式给出月、日、年。题目保证给出的日期是1900年元旦至今合法的日期。输出格式:在一行中按照“yyyy-mm-dd”的格式给出年、月、日。输入样例:03-15-2017结尾无空行输出样例:2017-03-15结尾无空行原创 2021-11-05 23:35:56 · 301 阅读 · 0 评论 -
7-16 计算符号函数的值 (10 分)
对于任一整数n,符号函数sign(n)的定义如下:请编写程序计算该函数对任一输入整数的值。输入格式:输入在一行中给出整数n。输出格式:在一行中按照格式“sign(n) = 函数值”输出该整数n对应的函数值。输入样例1:10结尾无空行输出样例1:sign(10) = 1结尾无空行输入样例2:0输出样例2:sign(0) = 0输入样例3:-98输出样例3:sign(-98) = -1#include <.原创 2021-11-05 23:35:02 · 65 阅读 · 0 评论 -
7-15 BCD解密 (10 分)
BCD数是用一个字节来表达两位十进制的数,每四个比特表示一位。所以如果一个BCD数的十六进制是0x12,它表达的就是十进制的12。但是小明没学过BCD,把所有的BCD数都当作二进制数转换成十进制输出了。于是BCD的0x12被输出成了十进制的18了!现在,你的程序要读入这个错误的十进制数,然后输出正确的十进制数。提示:你可以把18转换回0x12,然后再转换回12。输入格式:输入在一行中给出一个[0, 153]范围内的正整数,保证能转换回有效的BCD数,也就是说这个整数转换成十六进制时不会出现A-F原创 2021-10-25 21:21:02 · 280 阅读 · 0 评论 -
7-14 然后是几点 (15 分)PTA
有时候人们用四位数字表示一个时间,比如1106表示 11 点零 6 分。现在,你的程序要根据起始时间和流逝的时间计算出终止时间。读入两个数字,第一个数字以这样的四位数字表示当前时间,第二个数字表示分钟数,计算当前时间经过那么多分钟后是几点,结果也表示为四位数字。当小时为个位数时,没有前导的零,例如 5 点 30 分表示为530;0 点 30 分表示为030。注意,第二个数字表示的分钟数可能超过 60,也可能是负数。输入格式:输入在一行中给出 2 个整数,分别是四位数字表示的起始时间、以及...原创 2021-10-23 10:55:42 · 142 阅读 · 0 评论 -
7-13 后天 (5 分)PTA
如果今天是星期三,后天就是星期五;如果今天是星期六,后天就是星期一。我们用数字1到7对应星期一到星期日。给定某一天,请你输出那天的“后天”是星期几。输入格式:输入第一行给出一个正整数D(1≤D≤7),代表星期里的某一天。输出格式:在一行中输出D天的后天是星期几。输入样例:3结尾无空行输出样例:5结尾无空行#include <stdio.h>int main(){ int D; scanf("%d",&D); ...原创 2021-10-20 13:43:54 · 565 阅读 · 0 评论 -
7-12 日期格式化 (5 分)PTA
世界上不同国家有不同的写日期的习惯。比如美国人习惯写成“月-日-年”,而中国人习惯写成“年-月-日”。下面请你写个程序,自动把读入的美国格式的日期改写成中国习惯的日期。输入格式:输入在一行中按照“mm-dd-yyyy”的格式给出月、日、年。题目保证给出的日期是1900年元旦至今合法的日期。输出格式:在一行中按照“yyyy-mm-dd”的格式给出年、月、日。输入样例:03-15-2017结尾无空行输出样例:2017-03-15结尾无空行#include <原创 2021-10-20 08:37:07 · 185 阅读 · 0 评论 -
7-11 计算平均分 (5 分)PTA
已知某位学生的数学、英语和计算机课程的成绩分别是87分、72分和93分,求该生3门课程的平均成绩(结果按整型输出)。输入格式:本题无输入结尾无空行输出格式:按照下列格式输出结果:math = 87, eng = 72, comp = 93, average = 计算所得的平均成绩结尾无空行#include <stdio.h>int main(){ printf("math = 87, eng = 72, comp = 93, average原创 2021-10-20 08:35:45 · 159 阅读 · 0 评论 -
7-11 计算平均分 (5 分)PTA
已知某位学生的数学、英语和计算机课程的成绩分别是87分、72分和93分,求该生3门课程的平均成绩(结果按整型输出)。输入格式:本题无输入结尾无空行输出格式:按照下列格式输出结果:math = 87, eng = 72, comp = 93, average = 计算所得的平均成绩结尾无空行#include <stdio.h>int main(){ printf("math = 87, eng = 72, comp = 93, average原创 2021-10-20 11:15:00 · 611 阅读 · 0 评论 -
o_o ....7-10 算术入门之加减乘除 (10 分)
对于输入的两个整数,按照要求输出其和差积商。输入格式:在一行内输入两个不超过100的非负整数a和b,中间以一个空格间隔,且保证b不为0。输出格式:共四行,格式是:[a] + [b] = [a+b][a] - [b] = [a-b][a] * [b] = [a*b][a] / [b] = [a/b]其中,带有方括号的内容(如[a]、[b]、[a+b]等)表示相应整数或运算结果的值,在输出时要用实际的值代替。并且:如果a能够被b整除,那么a/b应输出为整数格式,否则a/b..原创 2021-10-20 08:00:00 · 82 阅读 · 0 评论 -
7-9 求整数均值 (10 分)
本题要求编写程序,计算4个整数的和与平均值。题目保证输入与输出均在整型范围内。输入格式:输入在一行中给出4个整数,其间以空格分隔。输出格式:在一行中按照格式“Sum = 和; Average = 平均值”顺序输出和与平均值,其中平均值精确到小数点后一位。输入样例:1 2 3 4结尾无空行输出样例:Sum = 10; Average = 2.5结尾无空行#include <stdio.h>int main(){ int a,b,c,d;原创 2021-10-19 07:30:00 · 609 阅读 · 0 评论 -
7-8 是不是太胖了 (5 分)
据说一个人的标准体重应该是其身高(单位:厘米)减去100、再乘以0.9所得到的公斤数。已知市斤的数值是公斤数值的两倍。现给定某人身高,请你计算其标准体重应该是多少?(顺便也悄悄给自己算一下吧……)输入格式:输入第一行给出一个正整数H(100<H≤300),为某人身高。输出格式:在一行中输出对应的标准体重,单位为市斤,保留小数点后1位。输入样例:169输出样例:124.2代码:#include <stdio.h>int main(){...原创 2021-10-19 00:00:00 · 59 阅读 · 0 评论 -
PTA翁恺7-7 计算摄氏温度 (10 分)
给定一个华氏温度F,本题要求编写程序,计算对应的摄氏温度C。计算公式:C=5×(F−32)/9。题目保证输入与输出均在整型范围内。输入格式:输入在一行中给出一个华氏温度。输出格式:在一行中按照格式“Celsius = C”输出对应的摄氏温度C的整数值。输入样例:150输出样例:Celsius = 65呆呆呆码:#include <stdio.h>int main(){ int F; int C; scanf("%d",原创 2021-10-18 18:39:59 · 365 阅读 · 0 评论 -
PTA翁恺7-6 厘米换算英尺英寸 (15 分)
7-6 厘米换算英尺英寸如果已知英制长度的英尺foot和英寸inch的值,那么对应的米是(foot+inch/12)×0.3048。现在,如果用户输入的是厘米数,那么对应英制长度的英尺和英寸是多少呢?别忘了1英尺等于12英寸。输入格式:输入在一行中给出1个正整数,单位是厘米。输出格式:在一行中输出这个厘米数对应英制长度的英尺和英寸的整数值,中间用空格分开。输入样例:170输出样例:5 6代码:#include <stdio.h>int ..原创 2021-10-18 17:13:09 · 1417 阅读 · 0 评论