题目描述:编制一个模拟发牌的程序。有编号为1,2,3,4四个人,将一付去掉大小怪的扑克按照如下顺序排列梅花c0-c12,方块d0-d12,红桃h0–h12,黑桃s0-s12,然后按照1,2,3,4四个人的顺序发牌,问最后每个人手上的牌有哪些。
思路:每次先输出第一章牌的花色和序号【梅花】】,输出一次就累加4,若数字大于12,则取模,发另一种类型的牌,直到发完13张
题目描述:考虑在下面被显示的数字金字塔(第n行有n列)。写一个程序来计算从最高点开始在底部任意处结束的路径经过数字的和的最大。每前进一步可以走到它的正下方或者右下方(往下一行、往右一列)的位置。
7
3 8
8 1 0
2 7 4 4
4 5 2 6 5
在上面的样例中,从7 到 3 到 8 到 7 到 5 的路径产生了最大和:30
思路:这不就是和二叉树求高类似吗
题目描述:明明的问题可以归结为:试编程将一个稀疏矩阵a转换成只存放非零元素的矩阵b,即找出每个不是0的元素,按从左到右从上到下的顺序,输出其所在的行和列以及它的值。
思路:双重循环直接遍历,如果不为0,则输出位置和值
题目描述:明明的问题可以归结为:有一个r×r的矩阵,把矩阵中的数以左上到右下的对角线的方式进行转换,然后输出转换后的矩阵。
思路:直接把输出a[i][j]变成a[j][i]就行了,不需要将对角线的元素进行转换
好难,不想做😭
题目描述:明明的爸爸的问题可以归结为:给你一张5行5列的效益表,表中的数字均为大于等于0的整数,要求在这张表中选出5个数字,使这5个数字的和最大。(注:这5个数字分别来自表中的不同行不同列,即同一行只能选择一个数字,同一列也只能选择一个数字。)
思路:三层循环,最外层遍历选出5个数字,内两层遍历二维数组。首先选出目前最大的数字且该行和列没有元素被选,选择该元素,将该元素的行和列标记,表示已选,此时已经选出了一位数字,接着按同样的方式选出剩余4个数字,使得这5个数字之和最大。
题目描述:明明在上学的时候,参加数学兴趣班。在班上,老师介绍了一种非常有趣的方阵,称之为螺旋方阵。该方阵一共由n×n个正整数构成(我们称之为n阶螺旋方阵),即共有n行n列。
方阵中的数字从1开始递增,数字的排序规则是从左上角出发由1开始排序,并按顺时针方向旋进,即先排最外面的一圈,然后排里面的一圈,以此类推,直到排到最后一个数为止。
例如一个4阶的螺旋方阵,一共有4×4=16个正整数构成,数字从1递增到16,最后排出来的方阵如下:
1 2 3 4
12 13 14 5
11 16 15 6
10 9 8 7
明明回家后想自己动手构造这样的螺旋方阵。他从n=1开始构造,但是他发现当n越来越大时,螺旋方阵的复杂性就越高,然后构造出来的方阵就越容易出错。为了降低构造方阵的出错率,提高构造速度,明明就求助于你,请你帮他写一个程序,来构造螺旋方阵。 明明的问题可以归结为:给你一个正整数n,请你按题目描述中所述的方法,构造出n阶的螺旋方阵。
思路:按照从左往右,从上往下,从右往左,从下往上的顺序构造
一块N x N(1=<N<=10)正方形的黑白瓦片的图案要被转换成新的正方形图案。
写一个程序来找出将原始图案按照以下列转换方法转换成新图案的最小方式:
#1:转90度:图案按顺时针转90度。
#2:转180度:图案按顺时针转180度。
#3:转270度:图案按顺时针转270度。
#4:反射:图案在水平方向翻转(形成原图案的镜像)。
#5:组合:图案在水平方向翻转,然后按照#1-#3之一转换。
#6:不改变:原图案不改变。
#7:无效转换:无法用以上方法得到新图案。
如果有多种可用的转换方法,请选择序号最小的那个。
注意:图案中的字符“@”和“-”在转90度后,还是“@”和“-”。不要认为“-”转90度后变成“|”
题目描述:农夫约翰从来只用调配得最好的饲料来为他的奶牛。
饲料用三种原料调配成:大麦,燕麦和小麦。他知道自己的饲料精确的配比,在市场上是买不到这样的饲料的。他只好购买其他三种混合饲料(同样都由三种麦子组成),然后将它们混合,来调配他的完美饲料。
给出三组整数,表示 大麦:燕麦:小麦 的比例,找出用这三种饲料调配 x:y:z 的饲料的方法。
例如,给出目标饲料 3:4:5 和三种饲料的比例:
1:2:3
3:7:1
2:1:2
你必须编程找出使这三种饲料用量最少的方案,要是不能用这三种饲料调配目标饲料,输出’NONE’。'用量最少’意味着三种饲料的用量(整数)的和必须最小。
对于上面的例子,你可以用8份饲料1,2份饲料2,和5份饲料3,来得到7份目标饲料: 8*(1:2:3) + 1*(3:7:1) + 5*(2:1:2) = (21:28:35) = 7*(3:4:5)
以上数字中,表示饲料比例的整数都是小于100(数量级)的非负整数,表示各种饲料的份数的整数都小于100。一种混合物的比例不会由其他混合物的比例直接相加得到。
题目描述: 明明的问题可以归结为:给你一个浮点数,请你求出这个浮点数的小数位数。
思路:遍历数组,从小数点后面开始计数
题目描述:输入一个十进制数,将其化成N进制数输出(2≤N≤16)。 输出结果时,大于等于10的数字用字母代替,A代表10,B代表11以此类推
思路:转换为N进制存入数组中,逆序输出
题目描述:以字符串形式输入仅有整数和加减(正负)号构成的表达式,输出该表达式的值。
思路:将所有非空格的数存入数组B,
题目描述:从键盘输入一个字符串和一个字符,将输入字符从字符串中删除,输出新的字符串。如果字符串中没有此字符,则原样输出字符串
思路:将字符串中不等于该字符的字符存入另一个数组中,输出该数组
题目描述:大家都知道,手机号是一个11位长的数字串,同时,作为学生,还可以申请加入校园网,如果加入成功,你将另外拥有一个短号。假设所有的短号都是“6”+手机号的后5位,比如号码为13512345678的手机,对应的短号就是645678。
现在,如果给你一个11位长的手机号码,你能找出对应的短号吗
题目描述:对于给定的一个字符串,统计其中小写字母出现的次数。
题目描述:你的弟弟刚做完了“100以内数的加减法”这部分的作业,请你帮他检查一下。每道题目(包括弟弟的答案)的格式为a+b=c或者a-b=c,其中a和b是作业中给出的,均为不超过100的非负整数;c是弟弟算出的答案,可能是不超过200的非负整数,也可能是单个字符"?",表示他不会算。
题目描述:明明爸爸的问题可以归结为:输入一行字符串,全部由小写字母构成,对字符串按26个英文字母的先后顺序进行排序,然后输出。
思路:字符串排序和数字排序一样,本次采用插入排序,可以试试堆排序或者快速排序更快
题目描述:输入一串字符,其长度小于200,判断该串字符是否构成回文。 所谓回文是指从左到右和从右到左读一串字符的值是一样的,如:ABCBA。
思路:双指针遍历,一个指向头,往后遍历,一个指向尾,向前遍历,若这两个元素不相等,则不是回文
题目描述:对于一个字符串,编程找出其中的所有整数。例如,字符串“a12bc34d05”,其中有整数12、34、5
思路:需要使用isdigit函数判断是否为数字,使用另一个数组来存储数字
题目描述:明明的问题可以归结为:给你一系列的比赛数据(WL形式),分别按照11分制和21分制的比赛规则进行统计,然后输出统计结果。
思路:遍历统计W和L的个数,若它们之间相差两分且有一个已经达到11分或者21分时输出,并且重新开始计数
题目描述:明明最近在做一个有关字符串的统计工作。两个由小写字母组成的字符串s1和s2,明明需要统计出以下四种关系:
(1)在s1或s2中存在的字母(包括在s1和s2中都存在的字母);
(2)在s1中且在s2中的字母;
(3)在s1中但不在s2中的字母,在s2中但不在s1中的字母;
(4)不在s1中且也不在s2中的字母;
思路:将字符串转换为数字存储在数组中
题目描述:有时候程序员有很奇怪的方法来隐藏他们的口令。
Billy"Hacker"Geits会选择一个字符串S(由L个小写字母组成,5<=L<=100,000),然后他把S顺时针绕成一个圈。
如字符串cbadfa,绕成一个圈后,我们认为字符串首尾相连。
每次取其中一个字母作为起始字母,并顺时针依次取字母而组成一个字符串。这样将得到一些字符串。
比如字符串cbadfa,按照以上规则取出的字符串有:
cbadfa badfac adfacb dfacba facbad acbadf
我们找到最小的那个字符串,可知为acbadf,也可知道它的第一个字符’a’在原字符串cbadfa中为第6个字符(位置从1开始),
将得到的结果6减1得到5,这就是我们需要的口令。
再比如字符串alabala,绕成一个圈后,每次取其中一个字母作为起始字母,并顺时针依次取字母而组成一个字符串。这样将得到一些字符串:
alabala labalaa abalaal balaala alaalab laalaba aalabal
我们找到最小的那个字符串,可知为aalabal,它的第一个字母’a’在原字符串中位置为7,7-1=6,则6为口令。
注:如果按照规则有两个字符串都是最小的,则取前面那一个。
题目描述:明明的问题可以归结为:输入两串字符串s和subs,求s中subs的起始位置。
题目描述:明明的问题可以归结为:在一行英文单词中,找出其中最长的单词(若有多个最长,找出第一个出现的),并输出这个单词的长度
题目描述:明明所在学校的惯例是在每学期的期末考试之后发放奖学金。
发放的奖学金共有五种,获取的条件各不相同:
-
院士奖学金:每人8000元,期末平均成绩高于80分,并且在本学期内发表1篇或1篇以上论文的学生均可获得。
-
五四奖学金:每人4000元,期末平均成绩高于85分,并且班级评议成绩高于80分的学生均可获得。
-
成绩优秀奖:每人2000元,期末平均成绩高于90分的学生均可获得。
-
西部奖学金:每人1000元,期末平均成绩高于85分的西部省份学生均可获得。
-
班级贡献奖:每人850元,班级评议成绩高于80分的学生干部均可获得。
只要符合条件就可以得奖。 每项奖学金的获奖人数没有限制,每名学生也可以同时获得多项奖学金。
例如明明的期末平均成绩是87分,班级评议成绩82分,同时他还是一位学生干部,那么他可以同时获得五四奖学金和班级贡献奖,奖金总数是4850元。
由于老师在学期末的时候很忙,所以,他把奖学金统计的事情交给明明做。老师把考试的相关数据给了明明,让他统计出以下数据:
1) 哪位同学获得的奖学金最多;
2) 获得最多奖学金的同学一共获得了多少奖学金;
3) 所有获得奖学金的同学一共获得了多少奖学金;
明明虽然很愿意帮老师这个忙,但是他发现,同学的数量很多,统计起来很麻烦,经常有统计出错的情况发生。于是明明就想请你帮一个忙,帮他写一个统计程序,统计出以上三项内容。
题目描述:明明的问题可以归结为:给你一个整数(十进制),判断该整数的十进制数和它的二进制数是否全为回文数。
思路:用数组存储十进制转换为R进制的结果,再判断由该数组组成的元素是否为回文
题目描述:明明的问题可以归结为:给你一串正整数的连加表达式,完成这个表达式的计算。
注意不要忘了加上最后一位
题目描述:序列是在数学世界中一种非常有趣的数字现象,它通过某一规则来产生数字,使数字变得有趣、变幻无穷。很多数学家对序列这种事物产生了浓厚的兴趣,花了很多时间对其进行研究,明明就是其中的一位。一天,他又在研究一种新的序列产生规则,该序列的规则如下:
1) 第1轮,写出两个1,即11;
2) 第2轮,在它们中间插入2,成为121;
3) 第3轮,在上面数中每两个相邻的和为3的数之间插入3,成为13231;
4) 以此类推下去,第n轮,在第n-1轮的数字的基础上,每两个相邻的和为n的数之间插入n。
明明根据这个规则开始构造序列。开始还觉得容易,但是越到后面,明明发现构造序列的计算量越来越大,计算难度也越来越高,计算速度也越来越慢。于是,明明就求助于你这位程序设计专家,能否帮他写一个程序,构造出序列的前9项,然后当明明需要知道序列中的哪一项的时,你就把那一项的数字告诉明明。
明明的问题可以归结为:根据题目描述中所描述的序列产生规则构造序列的前9项,然后告诉你一个正整数n,要求你输出序列的第n项。
思路: 我直接手打😎
题目描述:明明的问题可以归结为:根据一个正整数n,求出从100开始从小到大的第n个纯粹合数。
思路:要用到sprintf函数和sscanf函数
题目描述:明明爸爸的问题可以归结为:输入一串数字,找出其中最长的不超过4个字符的质数子串。若有多个答案,则找出其中数值最大的一个。
思路:用字符数组存储该串数字,使用暴力破解法,每次依次判断前四位是否构成质数,若构成则令MAX等于它,否则从下一位开始,判断前四位是否构成质数,一直循环到最后四位。
题目描述:明明的破解方法如下:一串以‘@’为结束标志的字符串,从左至右对其进行翻译,若字符串中当前字符是整数n(0≤n≤9),则表示将后一个字符重复n+1次,不论后一个字符是否为数字,且后一个字符无需再次翻译;若当前字符非数字,则表示自己,无需翻译,直接输出即可。最后,输出翻译完的字符串。
例如字符串为:2d352d@,因为第一个字符为数字2,则将后一个字符d输出3次,而d则不需再翻译,然后翻译3,3也是一个数字,则将后一个字符5输出4次,而5则不需再翻译,然后翻译2,2也是一个数字,将后一个字符d输出3次,而d则不需再翻译,最后一个字符为@,表示自己,直接输出即可,最后的输出为:ddd 555 5dd d@;(注:在翻译时,‘@’当作字符处理。) 这样翻译字符串的方法虽然简单,但是由于敌方的文件巨大,仅仅靠手工翻译是很难在短时间内完成的。于是明明就求助于你这位程序专家,按照明明提供的破译方法写一个程序,帮助明明快速把敌方文件翻译完成。
明明的问题可以归结为:按照文中提供的破译情报的方法,对字符串进行翻译,然后输出翻译后的字符串。
思路:循环读取字符串中字符,若为数字,则输出对应次数+1,然后下标加1,即跳过下一个,不是数字的话直接输出,依次重复进行
题目描述:输入一行数字,如果我们把这行数字中的‘5’都看成空格,那么就得到一行用空格分割的若干非负整数(可能有些整数以‘0’开头,这些头部的‘0’应该被忽略掉,除非这个整数就是由若干个‘0’组成的,这时这个整数就是0)。
你的任务是:对这些分割得到的整数,依从小到大的顺序排序输出。
题目描述:给你两个非负实数A和B,如果A等于B,输出 “YES”, 否则输出"NO"
思路:需要将两个字符串A,B规范化,即删除开头字母是0的字符以及删除末尾字母为0的字符,然后再用strcmp函数比较两字符是否相等
题目描述:你的工作就是去这些牛制造的奇观(最棒的回文)。在寻找回文时不用理睬那些标点符号、空格(但应该保留下来以便做为答案输出),只用考虑字母’A’-‘Z’和’a’-‘z’。要你寻找的最长的回文的文章是一个不超过20,000个字符的字符串。我们将保证最长的回文不会超过2,000个字符(在除去标点符号、空格之前)。
思路:结构体存储字符和
Description of the title:I have a very simple problem for you. Given two integers A and B, your job is to calculate the Sum of A + B.
思路:注意要将字符转换为数字以及处理进位【从个位开始相加】,还有输出的格式
题目描述:T行,每行一个16进制数,为求出的两数之和。
思路:先将16进制化为10进制,然后再转换为十六进制存入数组输出
题目描述:明明的问题可以归结为:一个素数,去掉最高位,剩下的数仍为素数,再去掉剩下的数的最高位,余下的数还是素数,这样下去一直到最后剩下的个位数也还是素数,我们把这样的数称为纯粹素数。
跟据一个正整数n,求出从1,000开始从小到大的第n个纯粹素数。
思路:和第100题的纯粹合数解法相同
题目描述:给你两个正的实数A和B,你的任务是计算出A+B的值。