![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
秃头程序员儿
这个作者很懒,什么都没留下…
展开
-
第七届蓝桥杯 省赛 JavaB组 方格填数
方格填数如下的10个格子(如果显示有问题,也可以参看【图1.jpg】)填入0~9的数字。要求:连续的两个数字不能相邻。(左右、上下、对角都算相邻)一共有多少种可能的填数方案?请填写表示方案数目的整数。注意:你提交的应该是一个整数,不要填写任何多余的内容或说明性文字。答案:1580思路:public clas原创 2017-03-08 17:41:47 · 636 阅读 · 0 评论 -
算法 博弈问题 取球问题 java
package com.test.zx;public class BoyiDemo { public static void main(String[]args){ System.out.println(f(10)); } public static boolean f(int n){//n为当前所剩球的数目 if(n>=1&&f(n-1)==false){ return原创 2017-02-15 11:12:09 · 936 阅读 · 0 评论 -
历届试题 分糖果
问题描述 有n个小朋友围坐成一圈。老师给每个小朋友随机发偶数个糖果,然后进行下面的游戏: 每个小朋友都把自己的糖果分一半给左手边的孩子。 一轮分糖后,拥有奇数颗糖的孩子由老师补给1个糖果,从而变成偶数。 反复进行这个游戏,直到所有小朋友的糖果数都相同为止。 你的任务是预测在已知的初始糖果情形下,老师一共需要补发多少个糖果。输入格式原创 2017-02-15 10:40:15 · 323 阅读 · 0 评论 -
算法训练 寻找数组中最大值
问题描述 对于给定整数数组a[],寻找其中最大值,并返回下标。输入格式 整数数组a[],数组元素个数小于1等于100。输出数据分作两行:第一行只有一个数,表示数组元素个数;第二行为数组的各个元素。输出格式 输出最大值,及其下标样例输入33 2 1样例输出3 0import原创 2017-02-14 09:42:34 · 551 阅读 · 0 评论 -
算法训练 Torry的困惑(基本型)
问题描述 Torry从小喜爱数学。一天,老师告诉他,像2、3、5、7……这样的数叫做质数。Torry突然想到一个问题,前10、100、1000、10000……个质数的乘积是多少呢?他把这个问题告诉老师。老师愣住了,一时回答不出来。于是Torry求助于会编程的你,请你算出前n个质数的乘积。不过,考虑到你才接触编程不久,Torry只要你算出这个数模上50000的值。输入格式原创 2017-02-13 23:46:55 · 274 阅读 · 0 评论 -
算法训练 动态数组使用
从键盘读入n个整数,使用动态数组存储所读入的整数,并计算它们的和与平均值分别输出。要求尽可能使用函数实现程序代码。平均值为小数的只保留其整数部分。样例输入: 5 3 4 0 0 2样例输出:9 1样例输入: 73 2 7 5 2 9 1样例输出:29 4import java.util.Scanner;public class Main { public stat原创 2017-02-13 22:07:41 · 226 阅读 · 0 评论 -
算法训练 删除数组零元素
从键盘读入n个整数放入数组中,编写函数CompactIntegers,删除数组中所有值为0的元素,其后元素向数组首端移动。注意,CompactIntegers函数需要接受数组及其元素个数作为参数,函数返回值应为删除操作执行后数组的新元素个数。输出删除后数组中元素的个数并依次输出数组元素。样例输入: (输入格式说明:5为输入数据的个数,3 4 0 0 2 是以空格隔开的5个整数)5 3 4 0原创 2017-02-13 22:02:54 · 363 阅读 · 0 评论 -
算法训练 Anagrams问题
问题描述 Anagrams指的是具有如下特性的两个单词:在这两个单词当中,每一个英文字母(不区分大小写)所出现的次数都是相同的。例如,“Unclear”和“Nuclear”、“Rimon”和“MinOR”都是Anagrams。编写一个程序,输入两个单词,然后判断一下,这两个单词是否是Anagrams。每一个单词的长度不会超过80个字符,而且是大小写无关的。 输入格式:输入有两行,分原创 2017-02-13 21:40:20 · 237 阅读 · 0 评论 -
算法训练 出现次数最多的整数
问题描述 编写一个程序,读入一组整数,这组整数是按照从小到大的顺序排列的,它们的个数N也是由用户输入的,最多不会超过20。然后程序将对这个数组进行统计,把出现次数最多的那个数组元素值打印出来。如果有两个元素值出现的次数相同,即并列第一,那么只打印比较小的那个值。 输入格式:第一行是一个整数N,N £ 20;接下来有N行,每一行表示一个整数,并且按照从小到大的顺序排列。原创 2017-02-13 11:06:44 · 453 阅读 · 0 评论 -
算法训练 数字三角形
问题描述 (图3.1-1)示出了一个数字三角形。 请编一个程序计算从顶至底的某处的一条路 径,使该路径所经过的数字的总和最大。 ●每一步可沿左斜线向下或右斜线向下走; ●1<三角形行数≤100; ●三角形中的数字为整数0,1,…99; . (图3.1-1)输入格式 文件中首先读到的是三角形的行数。 接下来描述整个三角原创 2017-02-13 09:50:42 · 310 阅读 · 0 评论 -
算法训练 P1103
编程实现两个复数的运算。设有两个复数 和 ,则他们的运算公式为: 要求:(1)定义一个结构体类型来描述复数。 (2)复数之间的加法、减法、乘法和除法分别用不用的函数来实现。 (3)必须使用结构体指针的方法把函数的计算结果返回。 说明:用户输入:运算符号(+,-,*,/) a b c d. 输出:a+bi,输出时不管a,b是小于0或等于0都按该格式输出,输出时a,b原创 2017-02-12 21:57:47 · 211 阅读 · 0 评论 -
算法训练 图形显示
问题描述 编写一个程序,首先输入一个整数,例如5,然后在屏幕上显示如下的图形(5表示行数): * * * * * * * * * * * * * * *import java.util.Scanner;public class Main { public static void main(String[]args){ Scanner s原创 2017-02-12 21:27:44 · 390 阅读 · 0 评论 -
算法训练 前缀表达式
问题描述 编写一个程序,以字符串方式输入一个前缀表达式,然后计算它的值。输入格式为:“运算符 对象1 对象2”,其中,运算符为“+”(加法)、“-”(减法)、“*”(乘法)或“/”(除法),运算对象为不超过10的整数,它们之间用一个空格隔开。要求:对于加、减、乘、除这四种运算,分别设计相应的函数来实现。 输入格式:输入只有一行,即一个前缀表达式字符串。 输出格式:输出相应的计原创 2017-02-12 21:05:52 · 1927 阅读 · 0 评论 -
算法训练 排序
问题描述 编写一个程序,输入3个整数,然后程序将对这三个整数按照从大到小进行排列。 输入格式:输入只有一行,即三个整数,中间用空格隔开。 输出格式:输出只有一行,即排序后的结果。 输入输出样例样例输入9 2 30样例输出30 9 2import java.util.Arrays;import java.util.Scanne原创 2017-02-12 18:31:24 · 348 阅读 · 0 评论 -
历届试题 数字游戏
问题描述 栋栋正在和同学们玩一个数字游戏。 游戏的规则是这样的:栋栋和同学们一共n个人围坐在一圈。栋栋首先说出数字1。接下来,坐在栋栋左手边的同学要说下一个数字2。再下面的一个同学要从上一个同学说的数字往下数两个数说出来,也就是说4。下一个同学要往下数三个数,说7。依次类推。 为了使数字不至于太大,栋栋和同学们约定,当在心中数到 k-1 时,下一个数字从0开始数。例如原创 2017-02-15 21:16:37 · 979 阅读 · 0 评论 -
第七届蓝桥杯 省赛 JavaB组 分小组
9名运动员参加比赛,需要分3组进行预赛。有哪些分组的方案呢?我们标记运动员为 A,B,C,... I下面的程序列出了所有的分组方法。该程序的正常输出为:ABC DEF GHIABC DEG FHIABC DEH FGIABC DEI FGHABC DFG EHIABC DFH EGIABC DFI EGHABC DGH EFIAB原创 2017-03-08 11:16:53 · 3259 阅读 · 3 评论 -
第四届蓝桥杯 省赛 JavaB组 振兴中华
小明参加了学校的趣味运动会,其中的一个项目是:跳格子。 地上画着一些格子,每个格子里写一个字,如下所示:(也可参见p1.jpg)从我做起振我做起振兴做起振兴中起振兴中华 比赛时,先站在左上角的写着“从”字的格子里,可以横向或纵向跳到相邻的格子里,但不能跳到对角的格子或其它位置。一直要跳到“华”字结束。 要原创 2017-03-13 08:49:00 · 718 阅读 · 0 评论 -
第四届蓝桥杯 省赛 JavaB组 马虎的算式
小明是个急性子,上小学的时候经常把老师写在黑板上的题目抄错了。 有一次,老师出的题目是:36 x 495 = ? 他却给抄成了:396 x 45 = ? 但结果却很戏剧性,他的答案竟然是对的!! 因为 36 * 495 = 396 * 45 = 17820 类似这样的巧合情况可能还有很多,比如:27 * 59原创 2017-03-13 08:13:06 · 435 阅读 · 0 评论 -
第四届蓝桥杯 省赛 JavaB组 世纪末的星期
曾有邪教称1999年12月31日是世界末日。当然该谣言已经不攻自破。 还有人称今后的某个世纪末的12月31日,如果是星期一则会.... 有趣的是,任何一个世纪末的年份的12月31日都不可能是星期一!! 于是,“谣言制造商”又修改为星期日...... 1999年的12月31日是星期五,请问:未来哪一个离我们最近的一个世纪末年(原创 2017-03-12 16:55:39 · 609 阅读 · 0 评论 -
第五届蓝桥杯 省赛 JavaB组 猜字母
把abcd...s共19个字母组成的序列重复拼接106次,得到长度为2014的串。接下来删除第1个字母(即开头的字母a),以及第3个,第5个等所有奇数位置的字母。得到的新串再进行删除奇数位置字母的动作。如此下去,最后只剩下一个字母,请写出该字母。答案是一个小写字母,请通过浏览器提交答案。不要填写任何多余的内容。答案:qpublic class M原创 2017-03-12 09:56:30 · 549 阅读 · 0 评论 -
第五届蓝桥杯 省赛 JavaB组 切面条
一根高筋拉面,中间切一刀,可以得到2根面条。 如果先对折1次,中间切一刀,可以得到3根面条。 如果连续对折2次,中间切一刀,可以得到5根面条。 那么,连续对折10次,中间切一刀,会得到多少面条呢?答案是个整数,请通过浏览器提交答案。不要填写任何多余的内容。思路:拿纸条模拟对折0次,2根对折1次,3根 2*2-1对折2原创 2017-03-12 09:15:39 · 1187 阅读 · 1 评论 -
第五届蓝桥杯 省赛 JavaB组 武功秘籍
小明到X山洞探险,捡到一本有破损的武功秘籍(2000多页!当然是伪造的)。他注意到:书的第10页和第11页在同一张纸上,但第11页和第12页不在同一张纸上。 小明只想练习该书的第81页到第92页的武功,又不想带着整本书。请问他至少要撕下多少张纸带走?这是个整数,请通过浏览器提交该数字,不要填写任何多余的内容。思路1:10,11 12,1314,15 16,原创 2017-03-11 20:00:50 · 911 阅读 · 0 评论 -
第六届蓝桥杯 省赛 JavaB组 立方变自身
观察下面的现象,某个数字的立方,按位累加仍然等于自身。1^3 = 1 8^3 = 512 5+1+2=817^3 = 4913 4+9+1+3=17...请你计算包括1,8,17在内,符合这个性质的正整数一共有多少个?请填写该数字,不要填写任何多余的内容或说明性的文字。public class Main { public static vo原创 2017-03-09 21:07:39 · 446 阅读 · 0 评论 -
第七届蓝桥杯 省赛 JavaB组 煤球数目
有一堆煤球,堆成三角棱锥形。具体:第一层放1个,第二层3个(排列成三角形),第三层6个(排列成三角形),第四层10个(排列成三角形),....如果一共有100层,共有多少个煤球?请填表示煤球总数目的数字。注意:你提交的应该是一个整数,不要填写任何多余的内容或说明性文字。思路:找规律问题:第一层多一个,第二层多两个,第n层比上一层多n个。使用for循环原创 2017-03-01 17:00:45 · 1013 阅读 · 0 评论 -
第七届蓝桥杯 省赛 JavaB组 生日蜡烛
某君从某年开始每年都举办一次生日party,并且每次都要吹熄与年龄相同根数的蜡烛。现在算起来,他一共吹熄了236根蜡烛。请问,他从多少岁开始过生日party的?请填写他开始过生日party的年龄数。注意:你提交的应该是一个整数,不要填写任何多余的内容或说明性文字。思路:因为不知道从几岁开始吹蜡烛计数,因此暴力搜索从(1-100岁)开始的情况。每年原创 2017-03-01 17:24:39 · 1869 阅读 · 1 评论 -
第六届蓝桥杯 省赛 JavaB组 三角形面积
如【图1】所示。图中的所有小方格面积都是1。那么,图中的三角形面积应该是多少呢?请填写三角形的面积。不要填写任何多余内容或说明性文字。思路:本题直接利用数学知识求出面积即可。利用割补法算三角形面积。利用海伦公式算三角形面积。p=(a+b+c)/2 S^2=p*(p-a)*(p-b)*(p-c)package com.test.zx;//输出面积,割补法publi原创 2017-03-09 20:54:44 · 1092 阅读 · 0 评论 -
第七届蓝桥杯 省赛 JavaB组 抽签
X星球要派出一个5人组成的观察团前往W星。其中:A国最多可以派出4人。B国最多可以派出2人。C国最多可以派出2人。....那么最终派往W星的观察团会有多少种国别的不同组合呢?下面的程序解决了这个问题。数组a[] 中既是每个国家可以派出的最多的名额。程序执行结果为:DEFFFCEFFFCDFFFCDEFFCCFFFCCEFF原创 2017-03-08 11:31:11 · 572 阅读 · 0 评论 -
算法训练 5-1最小公倍数
问题描述 编写一函数lcm,求两个正整数的最小公倍数。样例输入一个满足题目要求的输入范例。例:3 5样例输出与上面的样例输入对应的输出。例:数据规模和约定 输入数据中每一个数的范围。 例:两个数都小于65536。import java.util.Scanner;public class Main { p原创 2017-02-12 15:59:31 · 327 阅读 · 0 评论 -
算法训练 大小写转换
问题描述 编写一个程序,输入一个字符串(长度不超过20),然后把这个字符串内的每一个字符进行大小写变换,即将大写字母变成小写,小写字母变成大写,然后把这个新的字符串输出。 输入格式:输入一个字符串,而且这个字符串当中只包含英文字母,不包含其他类型的字符,也没有空格。 输出格式:输出经过转换后的字符串。输入输出样例样例输入AeDb样例输出aEdB原创 2017-02-12 15:33:04 · 396 阅读 · 0 评论 -
基础练习 01字串
问题描述对于长度为5位的一个01串,每一位都可能是0或1,一共有32种可能。它们的前几个是:0000000001000100001100100请按从小到大的顺序输出这32种01串。输入格式本试题没有输入。输出格式输出32行,按从小到大的顺序每行一个长度为5的01串。样例输出00000原创 2017-02-09 21:42:01 · 311 阅读 · 0 评论 -
基础练习 查找整数
问题描述给出一个包含n个整数的数列,问整数a在数列中的第一次出现是第几个。输入格式第一行包含一个整数n。第二行包含n个非负整数,为给定的数列,数列中的每个数都不大于10000。第三行包含一个整数a,为待查找的数。输出格式如果a在数列中出现了,输出它第一次出现的位置(位置从1开始编号),否则输出-1。样例输入6原创 2017-02-09 20:41:02 · 288 阅读 · 0 评论 -
入门训练 A+B问题
问题描述输入A、B,输出A+B。说明:在“问题描述”这部分,会给出试题的意思,以及所要求的目标。输入格式输入的第一行包括两个整数,由空格分隔,分别表示A、B。说明:“输入格式”是描述在测试你的程序时,所给的输入一定满足的格式。做题时你应该假设所给的输入是一定满足输入格式的要求的,所以你不需要对输入的格式进行检查。多余的格式检查可能会适得其反,转载 2017-02-09 20:18:45 · 266 阅读 · 0 评论 -
入门训练 序列求和
问题描述求1+2+3+...+n的值。输入格式输入包括一个整数n。输出格式输出一行,包括一个整数,表示1+2+3+...+n的值。样例输入4样例输出10样例输入100说明:有一些试题会给出多组样例输入输出以帮助你更好的做题。一般在提交之前所有这些样例都需要测试通过才行,但这不代表这几组样例数原创 2017-02-09 20:07:25 · 216 阅读 · 0 评论 -
递归算法思想
什么是递归,讲一个故事:从前有座山,山上有座庙,庙里有个老和尚,老和尚给小和尚讲故事。讲的什么故事呢?故事是这样的:山上有座庙,庙里有个老和尚,老和尚给小和尚讲故事。。。递归算法是在程序中不断反复调用自身的方法从而解决特定问题的一种思想,重点是对自身的调用,将求解的问题分解为相同问题的一个子问题,通过多次递归调用,以完成求解。递归方法中,该方法既是主调方法又是被调方法,反复调用其自原创 2016-12-02 11:00:29 · 2611 阅读 · 1 评论 -
三整数大小排序
输入三个整数,从小到大排序后输出。样例输入:20 7 33样例输出:7 20 33思路一:a b c三个数共有6中可能的顺序,使用6条if语句#includeint main(){ int a,b,c; scanf("%d%d%d",&a,&b,&c); if(a<=b&&b<=c) printf("%d %d %d\n",a,b,c); if(a<=c&&c<=b) p原创 2016-09-14 09:34:44 · 525 阅读 · 0 评论 -
循环显示上级目录(Java)
1.\反斜杠为转义字符 用两个\\表示一个\2.声明实例化字符串 String 字符串名 =" 字符串 ";3.int n=str.IndexOf("a ");定位a的位置 int n=str.lastIndexOf(" a");从后往前定位a的位置 str.IndexOf=-1时,表示定位完 4.str1=str.subString(起始位置,终止位置);截取原创 2016-08-22 17:45:53 · 479 阅读 · 0 评论 -
分解质因数(Java)
分解质因数每个合数都可以写成几个质数相乘的形式,几个质数叫做这个合数的质因数。12=2*2*3分解15 分别除以2,3,4,。。。,14分解16 分别除以2,3,4。。。。15//递归的思想:自己调用自己public class Zhiyinshu { public static void main(String[] args) { factor(18);原创 2016-08-22 17:43:42 · 823 阅读 · 0 评论 -
打印100以内的素数(Java)
1.需要重复操作时,for循环2. \t 空格缩进3. /斜杠表示除法,既取商 , %表示取余数,取模运算4. println(); 输入完括号内的内容自动换行5.返回值布尔类型的函数 ,访问权限 boolean 函数名(形参列表){}6.Math.sqrt(n)用于求n次方根public class Sushu { public static vo原创 2016-08-22 17:42:55 · 575 阅读 · 0 评论 -
打印水仙花数(Java)
1.需要一个备份量时,int temp2.传入形参列表的形参带类型3.求n次方 Math.pow()public class Shuixianhua { public static void main(String[] args) { for(int number=100;number<=100000;number++) { int sum=0; int te原创 2016-08-22 17:41:27 · 315 阅读 · 0 评论 -
冒泡排序法(Java)
/**冒泡排序法 从小到大排序需要比较多轮多次,每一次将相邻的两个数进行比较987654321第一轮----找到最大的数第一次 89 7654321第二次8 79 654321第三次 87 69 54321第四次 876 59 4321第五次8765 49 321第六次87654 39 21第七次876543 29 1第八次8765432 19原创 2016-08-22 17:39:11 · 365 阅读 · 0 评论