随笔分类 -  数据结构与算法

摘要:题目 把手放在键盘上时,稍不注意就会往右错一位。这样,输入Q会变成输入W, 输入J会变成输入K等。 输入一个错位后敲出的字符串(所有字母均大写),输出打字员本来想打出的句子。 输入保证合法,即一定是错位之后的字符串。例如输入中不会出现大写字母A。 样例输入: O S, GOME YPFSU/ 样例输 阅读全文
posted @ 2020-05-19 22:03 Vincent-yuan 阅读(256) 评论(0) 推荐(0) 编辑
摘要:题目 在TeX中,左引号是"“",右引号是"”"。输入一篇包含双引号的文章,你的任务时把它转换成TeX的格式。 样例输入 "To be or not to be," quoth the Bard, "that is the question". 样例输出 “To be or not to be,” 阅读全文
posted @ 2020-05-18 22:00 Vincent-yuan 阅读(293) 评论(0) 推荐(0) 编辑
摘要:题目 找出所有形如abc*de(三位数乘以两位数)的算式,使得在完整的竖式中,所有数字都属于一个特定的数字集合。 输入数字集合(相邻数字之间没有空格),输出所有竖式。 每个竖式前应有编号,之后应有一个空行。最后输出解的总数。 具体格式见样例输出(为了便于观察,竖式中的空格改用小数点显示,但所写程序中 阅读全文
posted @ 2020-05-18 21:40 Vincent-yuan 阅读(240) 评论(0) 推荐(0) 编辑
摘要:题目: 在 n*n 方阵里填入1,2,... , n*n , 要求填成蛇形。例如,n = 4时方阵为: 10 11 12 1 9 16 13 2 8 15 14 3 7 6 5 4 上面的方阵中,多余的空格只是为了便于观察规律,不必严格输出。n<=8。 分析 类比数学中的矩阵,可以用一个二维数组来存 阅读全文
posted @ 2020-05-18 21:01 Vincent-yuan 阅读(265) 评论(0) 推荐(0) 编辑
摘要:题目: 有n盏灯,编号1-n。第1个人把所有灯打开,第2个人按下所有编号为2的倍数的开关(这些等将被关掉), 第3个人按下所有编号为3的倍数的开关(其中关掉的等将被打开,开着的灯将被关闭),依次类推。 一共有k个人,问最后有哪些灯开着?输入n和k,输出开着的灯的编号。k <=n<=1000。 样例输 阅读全文
posted @ 2020-05-18 20:46 Vincent-yuan 阅读(190) 评论(0) 推荐(0) 编辑
摘要:题目: 用1,2,3,...,9组成3个三位数abc,def和ghi,每个数字恰好使用一次,要求 abc:def:ghi =1:2:3。 按照“abc def ghi”的格式输出所有解,每行一个解。 c实现 #include<stdio.h> int main() { int arr[3] = {1 阅读全文
posted @ 2020-05-13 21:50 Vincent-yuan 阅读(127) 评论(0) 推荐(0) 编辑
摘要:题目: 输入正整数a, b,c ,输出a/b的小数形式,精确到小数点后c位。a,b <=10^6, c<=100。 输入包含多组数据,结束标记为 a=b=c=0。 样例输入: 1 6 4 0 0 0 样例输出: Case 1: 0.1667 c语言实现 #include<stdio.h> int m 阅读全文
posted @ 2020-05-13 21:44 Vincent-yuan 阅读(176) 评论(0) 推荐(0) 编辑
摘要:题目 输入两个正整数 n< m < 10^6, 输出 1/n^2 + 1/(n+1)^2 + ... + 1/m^2 ,保留5位小数。 输入包含多组数据,结束标记为 n = m = 0. 样例输入: 2 4 65536 655360 0 0 样例输出: Case 1: 0.42361 Case 2: 阅读全文
posted @ 2020-05-13 21:33 Vincent-yuan 阅读(447) 评论(0) 推荐(0) 编辑
摘要:题目: 输入正整数n<=20,输出一个n层的倒三角形。例如,n=5时输出如下: # # # # # # # # # # # # # # # # # # # # # # # # # c语言实现 #include<stdio.h> int main() { int n; scanf("%d",&n); 阅读全文
posted @ 2020-05-13 20:42 Vincent-yuan 阅读(324) 评论(0) 推荐(0) 编辑
摘要:题目: 相传韩信才智过人,从不直接点清自己军队的人数,只要让士兵先后以三人一排、五人一排、七人一排地变换队形, 而他每次只掠一眼队伍的排尾就知道总数了。输入包含多组数据,每组数据包含3个非负整数a,b,c,表示每种队形排尾的人数(a<3, b<5 , c<7), 输出总人数的最小值(或报告无解)。已 阅读全文
posted @ 2020-05-13 20:38 Vincent-yuan 阅读(208) 评论(0) 推荐(0) 编辑
摘要:题目: 输出100~999中的所有水仙花数。若3位数ABC满足 ABC = A^3 + B^3 + C^3 ,则称其为水仙花数。 例如 153 = 1^3 + 5^3 + 3^3 ,所以153是水仙花数。 c语言实现 #include<stdio.h> int main() { int a,b,c; 阅读全文
posted @ 2020-05-13 20:22 Vincent-yuan 阅读(146) 评论(0) 推荐(0) 编辑
摘要:示例题目: 数据统计 输入一些整数,求出它们的最小值、最大值和平均值(保留3位小数)。输入保证这些书都是不超过1000的整数。 样例输入: 2 8 3 5 1 7 3 6 样例输出: 1 8 4.375 1.使用输入输出重定向的方式 #define LOCAL #include<stdio.h> # 阅读全文
posted @ 2020-05-12 22:58 Vincent-yuan 阅读(332) 评论(0) 推荐(0) 编辑
摘要:题目: 输入n, 计算 S = 1! + 2!+3! + ... + n!的末6位(不含前导0)。n<= 10^6, n! 表示前n个正整数之积。 样例输入 10 样例输出: 37913 分析 核心算法 "for(int i=1;i<=n;i++) S+= i ! " 这个只是伪代码 实现一: #i 阅读全文
posted @ 2020-05-12 22:38 Vincent-yuan 阅读(653) 评论(0) 推荐(0) 编辑
摘要:题目: 计算π/4 = 1 - 1/3 + 1/5 - 1/7 + ... , 知道最后一项小于 10^-6。 程序 #include<stdio.h> int main() { double sum =0; // for(int i=0;;i++){ // double term = 1.0/(2 阅读全文
posted @ 2020-05-12 22:19 Vincent-yuan 阅读(444) 评论(0) 推荐(0) 编辑
摘要:题目: 猜想:对于任意大于1的自然数n,若n为奇数,则将n变为3n+1,否则变为n的一半。 经过若干次这样的变换,一定会使n变为1。例如,3->10->5->16->8->4->2->1。 输入n,输出变换的次数。n<=10^9。 样例输入: 3 样例输出: 7 程序一 如下: #include<s 阅读全文
posted @ 2020-05-12 22:14 Vincent-yuan 阅读(563) 评论(0) 推荐(0) 编辑
摘要:题目: 输出所有形如aabb的4位完全平方数(即前两位数字相等,后两位数字相等)。 分析: 先使用伪代码分析思路: for(int a =1;a<=9;a++) { for(int b=0;b<=9;b++) { if(aabb是完全平方数) printf("%d\n",aabb) ; } } 伪代 阅读全文
posted @ 2020-05-12 21:57 Vincent-yuan 阅读(350) 评论(0) 推荐(0) 编辑
摘要:递归是一种广泛的算法。 其中用到了递归的数据结构和算法:DFS深度优先搜索、前中后序二叉树遍历等。 递归公式:f(n)=f(n-1)+1 其中f(1)=1 1.递归需要满足的三个条件 一个条件的解可以分解为几个子问题的解 这个问题与分解之后的子问题,除了数据规模不同,求解思路完全一样 存在递归终止条 阅读全文
posted @ 2020-05-08 22:07 Vincent-yuan 阅读(1116) 评论(0) 推荐(0) 编辑
摘要:题目: 输入年份,判断是否为闰年。如果是,则输出 yes, 否则输出 no。 提示:简单的判断除以4的余数是不够的。 思路: 1. 能被4整除,并且不能被100整除年份 2.能被400整除的年份 c语言实现 #include<stdio.h> int main() { int year; scanf 阅读全文
posted @ 2020-05-08 21:45 Vincent-yuan 阅读(178) 评论(0) 推荐(0) 编辑
摘要:题目: 输入三角形 3 条边的长度值 (均为正整数),判断能否为直角三角形的 3 个边长。 如果可以,则输出 yes , 如果不能,则输出 no 。 如果根本无法构成三角形,则输出 not a triangle。 思路: 直角三角形的条件:a^2 + b^2 = c^2 构成三角形的条件:任意两边之 阅读全文
posted @ 2020-05-08 21:39 Vincent-yuan 阅读(397) 评论(0) 推荐(0) 编辑
摘要:题目: 输入正整数n (n<360), 输入 n度的正弦、余弦函数值。提示:使用数学函数 c语言实现 #include<stdio.h> #include<math.h> int main() { int n; double pi = acos(-1.0); scanf("%d",&n); prin 阅读全文
posted @ 2020-05-08 21:34 Vincent-yuan 阅读(446) 评论(0) 推荐(0) 编辑