![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
PTA-C语言程序设计
永不放弃的Tom
这个作者很懒,什么都没留下…
展开
-
习题6-7 简单计算器 (20 分)
题目习题6-7 简单计算器 (20 分)模拟简单运算器的工作。假设计算器只能进行加减乘除运算,运算数和结果都是整数,四种运算符的优先级相同,按从左到右的顺序计算。输入格式:输入在一行中给出一个四则运算算式,没有空格,且至少有一个操作数。遇等号”=”说明输入结束。输出格式:在一行中输出算式的运算结果,或者如果除法分母为0或有非法运算符,则输出错误信息“ERROR”。输入样例:1+2*10-10/2=输出样例:10代码:#include<stdio.h>#include原创 2021-05-22 00:16:30 · 429 阅读 · 0 评论 -
03-树3 Tree Traversals Again (25 分)
题目题目背景An inorder binary tree traversal can be implemented in a non-recursive way with a stack. For example, suppose that when a 6-node binary tree (with the keys numbered from 1 to 6) is traversed, the stack operations are: push(1); push(2); push(3); pop原创 2021-05-20 22:51:17 · 186 阅读 · 2 评论 -
习题4-11 兔子繁衍问题 (15 分)
一对兔子,从出生后第3个月起每个月都生一对兔子。小兔子长到第3个月后每个月又生一对兔子。假如兔子都不死,请问第1个月出生的一对兔子,至少需要繁衍到第几个月时兔子总数才可以达到N对?输入格式:输入在一行中给出一个不超过10000的正整数N。输出格式:在一行中输出兔子总数达到N最少需要的月数。输入样例:30输出样例:9解题思路:兔子的总数是上个月+ 上上个月的和#include<stdio.h>#include<stdlib.h>/*原创 2021-05-16 23:28:01 · 176 阅读 · 0 评论 -
习题4-10 猴子吃桃问题 (15 分)
题目一只猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个;第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半加一个。到第N天早上想再吃时,见只剩下一个桃子了。问:第一天共摘了多少个桃子?输入格式:输入在一行中给出正整数N(1<N≤10)。输出格式:在一行中输出第一天共摘了多少个桃子。输入样例:3输出样例:10解题思路:我们知道了 当第N天 时候就发现只剩1个 那么N-1天的时间把N个桃子吃剩了一个我们根据天数反推桃子的数量x原创 2021-05-13 20:22:46 · 283 阅读 · 0 评论 -
习题4-9 打印菱形图案 (15 分)
题目解题思路:假设 x是菱形中间的那一层 x = n/2 +1;每一层左边的空格个数与他在层数和 x层有联系设 当层数 i=1; x=4 从左到右 需要输出 x-i * 2个空格 这样能恰好到指定位置输出一直对 第x层 把x层输出完后 就到 x-1层这时候处理完了 从上至下 第一层-x层我们接下来处理下半部分使i=1 i<x; i++ 次循环;在通过每层 用i*2在-1 使其层数从x-1 到0;代码#include<stdio.h>#include<原创 2021-05-13 20:04:02 · 175 阅读 · 0 评论 -
习题4-8 高空坠球 (20 分)
题目习题4-8 高空坠球 (20 分)皮球从某给定高度自由落下,触地后反弹到原高度的一半,再落下,再反弹,……,如此反复。问皮球在第n次落地时,在空中一共经过多少距离?第n次反弹的高度是多少?输入格式:输入在一行中给出两个非负整数,分别是皮球的初始高度和n,均在长整型范围内。输出格式:在一行中顺序输出皮球第n次落地时在空中经过的距离、以及第n次反弹的高度,其间以一个空格分隔,保留一位小数。题目保证计算结果不超过双精度范围。输入样例:33 5输出样例:94.9 1.0解题思路:题目求得原创 2021-05-11 17:57:49 · 512 阅读 · 0 评论 -
习题4-7 最大公约数和最小公倍数 (15 分)
题目输入格式:输入在一行中给出两个正整数M和N(≤1000)。输出格式:在一行中顺序输出M和N的最大公约数和最小公倍数,两数字间以1空格分隔。输入样例:511 292输出样例:73 2044思路:根据欧几里得算法 我们得知a b 两树之间的最大公因数通过最大公因数我们能求出 最小公倍数公式 result = a*b / 最大公因数代码#include<stdio.h>#include<stdlib.h>int gcd(int a, int b)原创 2021-05-07 20:58:12 · 135 阅读 · 0 评论 -
2020年第十届C/C++ B组第二场蓝桥杯省赛真题 第二题:既约分数
题目:既约分数题目描述如果一个分数的分子和分母的最大公约数是1,这个分数称为既约分数。例如,3/4,5/2,1/8,7/1都是既约分数。请问,有多少个既约分数,分子和分母都是1到2020之间的整数(包括1和2020)解题思路我们通过辗转相除法(欧几里得算法) 求得最大公约数 在通过判断最大公约数是为1通过枚举来得到答案#include<stdio.h>/* 试题B :既约分数 如果一个分数的分子和分母的最大公约数是1,这个分数称为既约分数原创 2021-02-25 18:47:23 · 2626 阅读 · 9 评论 -
习题4-6 水仙花数 (20 分)
题目输入格式:输入在一行中给出一个正整数N(3≤N≤7)。输出格式:按递增顺序输出所有N位水仙花数,每个数字占一行。输入样例:3输出样例:153370371407解题思路:IPO模型1.输入(Input)2.处理(Process)3.输出(Out)求N的位数根据N 我们假设位数, 例如 N == 3 我们从100求999中的水仙花数如果 N == 4 我们从1000-9999 中 求水仙花数锁定N的位数 从中求水仙花数, 假设 temp = 100 ,我们利原创 2021-05-05 17:46:50 · 438 阅读 · 0 评论 -
习题4-5 换硬币 (20 分)
题目将一笔零钱换成5分、2分和1分的硬币,要求每种硬币至少有一枚,有几种不同的换法?输入格式:输入在一行中给出待换的零钱数额x∈(8,100)。输出格式:要求按5分、2分和1分硬币的数量依次从大到小的顺序,输出各种换法。每行输出一种换法,格式为:“fen5:5分硬币数量, fen2:2分硬币数量, fen1:1分硬币数量, total:硬币总数量”。最后一行输出“count = 换法个数”。输入样例:13输出样例:fen5:2, fen2:1, fen1:1, total:4fen5原创 2021-05-03 13:19:37 · 361 阅读 · 3 评论 -
习题4-4 特殊a串数列求和 (20 分)
题目题目格式:解题思路:当n = 1 a = 2 注意 result = a当n = 2 a = 22 result = a * 10 + result当n = 3 a = 222 result = a*100 + result也可以换种解题方法当n = 1 a = 2 sum += a result = a当n = 2 a = 22 sum+= result * 10 + a当n = 3 a = 222 sum+= result * 1原创 2021-05-02 23:51:33 · 151 阅读 · 0 评论 -
习题4-3 求分数序列前N项和 (15 分)
题目#include<stdio.h>#include<stdlib.h>//习题4-3 求分数序列前N项和 (15 分) //https://pintia.cn/problem-sets/12/problems/289// 本题要求编写程序,计算序列 2/1+3/2+5/3+8/5+... 的前N项之和。// 注意该序列从第2项起,每一项的分子是前一项分子与分母的和,分母是前一项的分子。double calculateN();int main(){ do原创 2021-05-02 11:50:40 · 495 阅读 · 2 评论 -
习题4-2 求幂级数展开的部分和 (20 分)
题目本题要求编写程序,计算序列 2/1+3/2+5/3+8/5+… 的前N项之和。注意该序列从第2项起,每一项的分子是前一项分子与分母的和,分母是前一项的分子。输入格式:输入在一行中给出一个实数x∈[0,5]。输出格式:在一行中输出部分和的值,精确到小数点后两位。题目保证计算结果不超过双精度范围。输入样例:20输出样例:32.66解题思路:可以用阶乘函数来求k! 但是每次都需要重新对同一个数求阶乘 不如把上一个数保存 在与k相乘 不就成了K1了吗#include<stdio原创 2021-05-02 11:15:58 · 287 阅读 · 0 评论 -
习题4-1 求奇数和 (15 分)
题目#include<stdio.h>#include<stdlib.h>// https://pintia.cn/problem-sets/12/problems/287 // 输入在一行中给出一系列正整数,其间以空格分隔。当读到零或负整数时,表示输入结束,该数字不要处理。// 在一行中输出正整数序列中奇数的和。// 1. 逐步读入 遇到负数或者0结束 遇到奇数++ 否则什么都不做 读下一个int OddTotal();int main(){ int原创 2021-04-29 20:40:00 · 207 阅读 · 0 评论 -
练习4-11 统计素数并求和 (20 分)
题目思路设循环 从 n - m i=n 让i循环到m每一次判断i是否是素数 如果不是就返回0 如果是就返回1素数是指除了能被自身和1 整除的数#include<stdio.h>// 统计N - M 区间素数的个数 并且对素数求和int Isit(int n);int main(){ int count = 0 ; // 素数个数 double sum = 0; //素数的和 int n,m; scanf("%d %d",&n原创 2021-03-26 23:53:54 · 136 阅读 · 0 评论 -
练习4-10 找出最小值 (20 分)
题目从数组[0] 开始从前往后比较 如果大于 就赋值#include<stdio.h>// 找出最小值int main(){ int n ; scanf("%d", &n); int count[n]; for(int i =0 ; i<n; i++) { scanf("%d", &count[i]); } int min = count[0]; for(int i原创 2021-03-26 23:28:41 · 143 阅读 · 0 评论 -
练习4-7 求e的近似值 (15 分)
题目思路将 1+ 1/1!+1/2!+ … 1/n!分成两个徐怒汉第一个外循环是1+计算好的结果内循环是1/n! 的计算结果代码#include<stdio.h>//求 e的近似值 1+1/!+1/2!+1/3!+....+1/n!int main(){ int n = 0; // n double t = 0; //用来做阶乘 double sum = 1; scanf("%d", &n); for( int i=1; i&原创 2021-03-26 23:14:20 · 216 阅读 · 0 评论 -
习题3-4 统计学生成绩 (15 分)
题目统计学生成绩代码#include<stdio.h>#include<math.h>#include<string.h>void calculate(int n) ;int main(void){ int n ; scanf("%d",&n); calculate(n); getchar(); getchar(); return 0;}void calculate(int n)原创 2021-03-14 19:17:38 · 138 阅读 · 0 评论 -
练习4-6 猜数字游戏 (15 分)
题目猜数字游戏代码#include<stdio.h>#include<math.h>#include<string.h>void GuessNumber(int num, int N);int main(void){ int n ,m; scanf("%d %d",&n,&m); GuessNumber(n ,m); getchar(); getchar(); return 0;}vo原创 2021-03-14 19:04:31 · 800 阅读 · 2 评论 -
习题3-3 出租车计价 (15 分)
题目出租车计价#include<stdio.h>#include<math.h>#include<string.h>void calculate(float mile, int time);int main(void){ float m; int time; scanf("%f %d",&m, &time); calculate(m,time); getchar(); getchar();原创 2021-03-14 16:24:40 · 337 阅读 · 0 评论 -
习题3-2 高速公路超速处罚 (15 分)
题目高速公路超速处罚计算好 超出10%和50%的数值在用车速去比较#include<stdio.h>#include<string.h>#include<stdlib.h>void speed(int sped,int res);int main(){ int a,b; scanf("%d %d",&a ,&b); speed(a,b); getchar(); getchar(); return 0原创 2021-03-14 15:19:49 · 213 阅读 · 0 评论 -
C语言程序设计 习题3-1 比较大小 (10 分)
题目比较大小#include<stdio.h>#include<stdlib.h>void compare(int a,int b, int c);int main(){ int a, b, c; scanf("%d %d %d", &a, &b, &c); compare(a, b, c); getchar(); getchar(); return 0;}void compare(int a原创 2021-03-14 14:11:09 · 875 阅读 · 0 评论