
数据结构与算法
文章平均质量分 92
low霸丶
这个作者很懒,什么都没留下…
展开
-
锤子剪刀布-数学黑洞-月饼
题目一 大家应该都会玩“锤子剪刀布”的游戏:两人同时给出手势,胜负规则如图所示: 现给出两人的交锋记录,请统计双方的胜、平、负次数,并且给出双方分别出什么手势的胜算最大。 输入格式: 输入第 1 行给出正整数 N(≤105),即双方交锋的次数。随后 N 行,每行给出一次交锋的信息,即甲、乙双方同时给出的的手势。C 代表“锤子”、J 代表“剪刀”、B 代表“布”,第 1 个字母代表甲方,第 2 个代表乙方,中间有 1 个空格。 输出格式: 输出第 1、2 行分别给出甲、乙的胜、平、负次数,数字间以 1 个空格原创 2020-08-13 21:49:13 · 617 阅读 · 0 评论 -
C--超大数的四则运算
写在前面 起因是一道题目,说来惭愧,我记的离散数学课上有教过这个。 思路 加法 从低位到高位,逐位想加,产生进位则高位加1 减法 从低位到高位,逐位想减,产生借位则高位减1 乘法 从低位到高位,乘数逐位乘以被乘数,保存在第三个数组中,判断数组每个元素是否大于10,若大于10,高位加(元素/10),元素 %= 10 除法 用辗转相除法,从高位到低位,被除数 除以 除数 得到商及余数,下一位被除数 = 被除数 + 余数 * 10 代码 #include <stdio.h> #include &原创 2020-08-11 17:31:44 · 431 阅读 · 0 评论 -
德才论
题目 宋代史学家司马光在《资治通鉴》中有一段著名的“德才论”:“是故才德全尽谓之圣人,才德兼亡谓之愚人,德胜才谓之君子,才胜德谓之小人。凡取人之术,苟不得圣人,君子而与之,与其得小人,不若得愚人。” 现给出一批考生的德才分数,请根据司马光的理论给出录取排名。 输入格式: 输入第一行给出 3 个正整数,分别为:N(≤10 5 ),即考生总数;L(≥60),为录取最低分数线,即德分和才分均不低于 L 的考生才有资格被考虑录取;H(<100),为优先录取线——德分和才分均不低于此线的被定义为“才德全原创 2020-08-11 00:28:04 · 243 阅读 · 0 评论 -
找素数-福尔摩斯约会
#include<stdio.h> #include<math.h> #include<stdlib.h> int susu(int a) { int i = 2; for(;i <= sqrt(a);i++) if(a % i == 0) return 0; return 1; } int main() { int a,b; int i=1,j=0; scanf("%d %原创 2020-08-09 17:15:17 · 157 阅读 · 0 评论 -
数字分类
题目 给定一系列正整数,请按要求对数字进行分类,并输出以下 5 个数字: A1A_1A1= 能被 5 整除的数字中所有偶数的和; A2A_2A2= 将被 5 除后余 1 的数字按给出顺序进行交错求和,即计算 n1−n2 +n3 −n4 ⋯; A3A_3A3= 被 5 除后余 2 的数字的个数; A4A_4A4= 被 5 除后余 3 的数字的平均数,精确到小数点后 1 位; A5A_5A5= 被 5 除后余 4 的数字中最大数字。 输入格式: 每个输入包含 1 个测试用例。每个测试用例原创 2020-08-08 23:58:50 · 232 阅读 · 0 评论 -
A+B 和 C
题目 给定区间 [−231,231-2^{31},2^{31}−231,231] 内的 3 个整数 A、B 和 C,请判断 A+B 是否大于 C。 输入格式: 输入第 1 行给出正整数 T (≤10),是测试用例的个数。随后给出 T 组测试用例,每组占一行,顺序给出 A、B 和 C。整数间以空格分隔。 输出格式: 对每组测试用例,在一行中输出 Case #X: true 如果 A+B>C,否则输出 Case #X: false,其中 X 是测试用例的编号(从 1 开始)。 思路 关键是处理溢出问题,溢原创 2020-08-08 00:29:57 · 503 阅读 · 4 评论 -
数组元素循环右移- 说反话-一元多项式求导
题目一 一个数组A中存有N(>0)个整数,在不允许使用另外数组的前提下,将每个整数循环向右移M(≥0)个位置,即将A中的数据由(A0A1⋯AN−1)变(A N−M⋯AN−1A0A1 ⋯AN−M−1)(最后M个数循环移至最前面的M个位置)。如果需要考虑程序移动数据的次数尽量少,要如何设计移动的方法? 输入格式: 每个输入包含一个测试用例,第1行输入N(1≤N≤100)和M(≥0);第2行输入N个整数,之间用空格分隔。 输出格式: 在一行中输出循环右移M位以后的整数序列,之间用空格分隔原创 2020-08-07 22:53:20 · 195 阅读 · 0 评论 -
换个格式输出整数-素数对猜想
题目一 让我们用字母 B 来表示“百”、字母 S 表示“十”,用 12…n 来表示不为零的个位数字 n(<10),换个格式来输出任一个不超过 3 位的正整数。例如 234 应该被输出为 BBSSS1234,因为它有 2 个“百”、3 个“十”、以及个位的 4。 输入格式: 每个测试输入包含 1 个测试用例,给出正整数 n(<1000)。 输出格式: 每个测试用例的输出占一行,用规定的格式输出 n。 思路: 已知输入的数是三位数,将个十百分离,用switch区分各个情况。 重点,字符串的赋值与输出原创 2020-08-06 02:16:55 · 227 阅读 · 0 评论 -
继续(3n+1)猜想
题目 卡拉兹(Callatz)猜想已经在1001中给出了描述。在这个题目里,情况稍微有些复杂。 当我们验证卡拉兹猜想的时候,为了避免重复计算,可以记录下递推过程中遇到的每一个数。例如对 n=3 进行验证的时候,我们需要计算 3、5、8、4、2、1,则当我们对 n=5、8、4、2 进行验证的时候,就可以直接判定卡拉兹猜想的真伪,而不需要重复计算,因为这 4 个数已经在验证3的时候遇到过了,我们称 5、8、4、2 是被 3“覆盖”的数。我们称一个数列中的某个数 n 为“关键数”,如果 n 不能被数列中的其他数字原创 2020-08-04 16:57:51 · 319 阅读 · 0 评论 -
数据结构-算法练习
def Pass(): stringg = list() flag = 0 n = int(input()) if n >= 10: return for i in range(0,n): temp = input() if len(temp) >= 100: return stringg.append(temp) for i in stringg:原创 2020-08-04 01:01:47 · 211 阅读 · 0 评论