第五届省赛(软件类)真题----Java大学C组答案及解析

第五届省赛(软件类)真题—-Java大学C组答案及解析

  1. 杨辉三角
  2. 调和级数
  3. 回文素数
  4. 过大年
  5. 位平方和
  6. 单位分数
  7. n级台阶

一、杨辉三角

二项式的系数规律,我国数学家很早就发现了。
如【图1.png】,我国南宋数学家杨辉1261年所著的《详解九章算法》一书里就出现了。
其排列规律:
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
1 6 15 20 15 6 1
1 7 21 35 35 21 7 1
如下的程序,用来建立N行的杨辉三角形。请填写划线部分缺少的代码。
注意:只填写划线部分的代码,不要填写任何多余的内容。

public class A
{public static void main(String[] args){int N = 8;int[][] a = new int[N][N] ;for(int i=0; i<N; i++){a[i][0] = 1;a[i][i] = 1;}for(int i=1; i<N; i++){for(int j=1; j<i; j++) __________________;  //填空}for(int i=0; i<N; i++){for(int j=0; j<=i; j++) System.out.print(String.format("%-5d", a[i][j]));System.out.println();}   }
}

答案:a[i][j] = a[i-1][j] + a[i-1][j-1]


二、调和级数

1/1 + 1/2 + 1/3 + 1/4 + … 在数学上称为调和级数。
它是发散的,也就是说,只要加上足够多的项,就可以得到任意大的数字。
但是,它发散的很慢:
前1项和达到 1.0
前4项和才超过 2.0
前83项的和才超过 5.0
那么,请你计算一下,要加多少项,才能使得和达到或超过 15.0 呢?
请填写这个整数。
注意:只需要填写一个整数,不要填写任何多余的内容。比如说明文字。

答案:1835421

public class Main
{public static void main(String[] args){double sum = 0.0;int i = 1;do {sum += 1.0/i;i++;}while (sum < 15.0);System.out.println(sum);System.out.println(i);}
}

三、回文素数

10301是个5位的素数。它有个特点,把数字倒过来还是它本身,具有这样特征的素数,我们称之为:回文素数。

10501
10601
11311

这些都是5位的回文素数。
请你计算一下,像这样的5位数的回文素数,一共有多少个?
请填写这个表示个数的整数,注意不要写任何其它多余的内容,比如说明或解释文字,也不要列出所有的回文素数。

答案:95

public class Main
{public static boolean prime(int i) {
//求素数不能等于开方结果for(int j = 2;j<Math.sqrt(i);j++) {if(i % j == 0) {return false;}}return true;}public static void main(String[] args){int cnt = 0;for (int i = 10000; i <= 99999; i++) {if(!prime(i)) {continue;}String s = i + "";String[] arr = s.split("");if (arr[0].equals(arr[4]) && arr[1].equals(arr[3])) {cnt++;}}System.out.println(cnt);}
}

四、过大年

有如下的加法算式。其中每个汉字代表一个数字。
1
请填写“让我怎能过大年” 所代表的整数。
所有数字连在一起,中间不要空格。例如:”3125697”。当然,这个不是正确的答案。
注意:只填写一个整数,不要填写任何多余的内容。

答案:1572836

public class Main {public static void main(String[] args) {int a,b,c,d,e,f,g;int t,temp;for (int i = 1000000; i<9999999;i++) {a=i%10;b=i%100;c=i%1000;d=i%10000;e=i%100000;f=i%1000000;g=i%10000000;t=i/1000%10;temp=t*1000000+t*100000+t*10000+t*1000+t*100+t*10+t*1;int sum=a+b+c+d+e+f+g;if(sum == temp) {System.out.println(i);}}}
}

五、平方和

把一个整数的每个数位都平方后求和,又得到一个整数,我们称这个整数为:位平方和。
对新得到的整数仍然可以继续这一运算过程。
比如,给定整数为4,则一系列的运算结果为:
16,37,58,89,….
本题的要求是,已知一个整数x,求第n步的运算结果。

数据格式要求:
输入,两个整数x n,中间以空格分开。表示求x的第n步位平方和。其中,x,n都大于0,且小于100000。
输出,一个整数,表示所求结果。

例如,
输入:
4 3
则程序应该输出:
58

再例如,
输入:
1314 10
则程序应该输出:
20

资源约定:
峰值内存消耗(含虚拟机) < 256M
CPU消耗 < 1000ms

请严格按要求输出,不要画蛇添足地打印类似:“请您输入…” 的多余内容。
所有代码放在同一个源文件中,调试通过后,拷贝提交该源码。
注意:不要使用package语句。不要使用jdk1.7及以上版本的特性。
注意:主类的名字必须是:Main,否则按无效代码处理。

public class Main {public static int f(int x) {int sum = 0;while (x > 0) {int t = x%10;sum += t*t;x/=10;}return sum;}public static void main(String[] args) {Scanner input = new Scanner(System.in);int x = input.nextInt();int n = input.nextInt();for (int i = 0; i < n; i++) {x = f(x);}System.out.println(x);}
}

六、单位分数

形如:1/a 的分数称为单位分数。
可以把1分解为若干个互不相同的单位分数之和。
例如:
1 = 1/2 + 1/3 + 1/9 + 1/18
1 = 1/2 + 1/3 + 1/10 + 1/15
1 = 1/3 + 1/5 + 1/7 + 1/9 + 1/11 + 1/15 + 1/35 + 1/45 + 1/231
等等,类似这样的分解无穷无尽。
我们增加一个约束条件:最大的分母必须不超过30
请你求出分解为n项时的所有不同分解法。
数据格式要求:
输入一个整数n,表示要分解为n项(n<12)
输出分解后的单位分数项,中间用一个空格分开。
每种分解法占用一行,行间的顺序按照分母从小到大排序。

例如,
输入:
4
程序应该输出:
1/2 1/3 1/8 1/24
1/2 1/3 1/9 1/18
1/2 1/3 1/10 1/15
1/2 1/4 1/5 1/20
1/2 1/4 1/6 1/12

再例如,
输入:
5
程序应该输出:
1/2 1/3 1/12 1/21 1/28
1/2 1/4 1/6 1/21 1/28
1/2 1/4 1/7 1/14 1/28
1/2 1/4 1/8 1/12 1/24
1/2 1/4 1/9 1/12 1/18
1/2 1/4 1/10 1/12 1/15
1/2 1/5 1/6 1/12 1/20
1/3 1/4 1/5 1/6 1/20

资源约定:
峰值内存消耗(含虚拟机) < 256M
CPU消耗 < 2000ms

请严格按要求输出,不要画蛇添足地打印类似:“请您输入…” 的多余内容。
所有代码放在同一个源文件中,调试通过后,拷贝提交该源码。
注意:不要使用package语句。不要使用jdk1.7及以上版本的特性。
注意:主类的名字必须是:Main,否则按无效代码处理。

class Main {public static void f(int[] p, int n, int fm, int end) {if (n == end) {int sum = 1;int sum1 = 0;for (int i = 0; i < n; i++) {sum *= p[i];}for (int j = 0; j < n; j++) {sum1 +=sum/p[j];}/*控制输出*/if (sum == sum1) {for (int i = 0; i < n; i++) {System.out.print("1/" + p[i] + " ");}System.out.println();}} else {for (int i = fm; i < 30; i++) {p[end] = i;f(p, n, i+1,end+1);}}}public static void main(String[] args) {Scanner input = new Scanner(System.in);int n = input.nextInt();int[] p = new int[n];f(p,n,2,0);}
}

七、n级台阶

有n级台阶。从地面(第0级)出发,首先连续的上台阶,上到不超过第n级的某一个位置后再连续的下台阶,直到回到地面。若每次上下台阶只允许走1级或2级,请问可能的上下台阶的方案数是多少?
特别地,在0级站着不动也算一种方案。

数据格式:
输入一行包含两个正整数n和m。
输出一个整数,表示n级台阶有多少种合法的走楼梯方案,答案对m取余。

例如:输入:
2 10007
程序应该输出
6

【样例说明1】
共有6种方案(其中+表示上台阶,-表示下台阶):
(1) 原地不动
(2) +1 -1
(3) +2 -2
(4) +2 -1 -1
(5) +1 +1 -2
(6) +1 +1 -1 -1

再例如,输入:
3 14
程序应该输出:
1

【样例说明2】
共有15种方案,对14取余后得1。

【数据规模】
对于30%的数据,n<=10000;
对于100%的数据,n<=10^17,m<=2*10^9。

资源约定:
峰值内存消耗(含虚拟机) < 256M
CPU消耗 < 1000ms

请严格按要求输出,不要画蛇添足地打印类似:“请您输入…” 的多余内容。
所有代码放在同一个源文件中,调试通过后,拷贝提交该源码。
注意:不要使用package语句。不要使用jdk1.7及以上版本的特性。
注意:主类的名字必须是:Main,否则按无效代码处理。

解析:典型的斐波那契数列问题

import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner  sc = new Scanner(System.in);int n = sc.nextInt();int m = sc.nextInt();int sum=1;for(int i=0;i<=n;i++){sum+=i*i;}System.out.println(sum%m);}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/569811.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Angular4.x 安装|创建项目|目录结构|创建组件

Angular4.x 安装|创建项目|目录结构|创建组件 安装最新版本的 nodejs node.js 官网&#xff1a;https://nodejs.org/zh-cn/ 去官网下载 node.js&#xff0c;下一步下一步就可以了。只要 node.js 安装成功&#xff0c;那么 npm 也会帮你安装完成&#xff01; 注意&#xff1a;请…

第五届省赛(软件类)真题----Java大学B组答案及解析

第五届省赛&#xff08;软件类&#xff09;真题—-Java大学B组答案及解析 正则切分调和级数n的n次幂七对数字勾股定理九阶数独G将军 一、正则切分 java中提供了对正则表达式的支持。 有的时候&#xff0c;恰当地使用正则&#xff0c;可以让我们的工作事半功倍&#xff01; …

第五届省赛(软件类)真题----Java大学A组答案及解析

第五届省赛&#xff08;软件类&#xff09;真题—-Java大学A组答案及解析 子序列最大长度莱布尼茨公式n的n次幂七对数字勾股定理九阶数独矩阵射线 一、子序列最大长度 一个串的子串是指该串的一个连续的局部。如果不要求连续&#xff0c;则可称为它的子序列。 比如对串&…

js获取一个月的天数

在使用其他语言获取每月天数的时候&#xff0c;一般都是存储到一个数组中进行获取&#xff0c;但是如果是二月份的话就需要首先判断是否闰年&#xff0c;再确定是28还是29了。 js可以通过Date对象很方便的获取到每月的天数&#xff0c;在初始化Date对象时&#xff0c;我们可以通…

第六届省赛(软件类)真题----Java大学C组答案及解析

第六届省赛&#xff08;软件类&#xff09;真题----Java大学C组答案及解析隔行变色立方尾无穷分数循环节长度格子中输出奇妙的数字加法变乘法移动距离打印大X垒骰子 一、隔行变色 Excel表的格子很多&#xff0c;为了避免把某行的数据和相邻行混淆&#xff0c;可以采用隔行变色的…

spring_01概念及案例

1.什么是IOC?   IOC概念:inverse of Controll,控制反转,所谓控制反转,就是把创建对象和维护对象关系的权利从程序中转移到spring的容器中(applicationContext.xml),而程序本身不再维护 2.什么是di? dependency injection,依赖注入,di和IOC是一个概念,spring的设计者认为di等…

斐波那契数列(二)--矩阵优化算法

之前写了一篇从斐波那契数列分析递归与动态规划&#xff08;JAVA&#xff09;来优化斐波那契数列&#xff0c;这样可以使算法的时间复杂度从O(n^2)变到O(n),这是使用递归公式f(n)f(n-1)f(n-2)求斐波那契数列的最优算法&#xff0c;但是这只是一维世界下的极限。下面我们将其从一…

第六届省赛(软件类)真题----Java大学B组答案及解析

第六届省赛&#xff08;软件类&#xff09;真题----Java大学B组答案及解析三角形面积立方变自身三羊献瑞循环节长度九数组分数加法变乘法牌型种数饮料换购垒骰子生命之树 一、三角形面积如【图1】所示。图中的所有小方格面积都是1。那么&#xff0c;图中的三角形面积应该是多少…

【学习总结】GirlsInAI ML-diary day-11-while循环

【学习总结】GirlsInAI ML-diary 总 原博github链接-day11 认识while循环执行 对于while/break/continue的认识 新值替换变量 一般while语句 无限循环 & break continue 作业 1-更新变量 这一条没什么新的东西&#xff0c;别的语言也一样&#xff1a;python在赋值时&#x…

第六届省赛(软件类)真题----Java大学A组答案及解析

第六届省赛&#xff08;软件类&#xff09;真题----Java大学A组答案及解析熊怪吃核桃星系炸弹九数分三组循环节长度打印菱形加法变乘法牌型种数移动距离垒骰子灾后重建一、熊怪吃核桃森林里有一只熊怪&#xff0c;很爱吃核桃。不过它有个习惯&#xff0c;每次都把找到的核桃分成…

@PathVariable、@RequestParam、@RequestBody注解

讲解更加详细的参考资料 https://blog.csdn.net/u011410529/article/details/66974974 https://www.cnblogs.com/soul-wonder/p/8920553.html PathVariable注解的作用&#xff0c;获取请求地址中传递的参数&#xff0c;即&#xff1a;从URL模版中取值。 RequestParam 是从reque…

从背包问题优化详解动态规划思想

动态规划&#xff1a; 所有的数据结构与算法的理解必须建立在题目的练习上&#xff0c;否则看多少理论都没有实际用处&#xff01;&#xff01;&#xff01;所以下面这些理论文字看不懂通通没关系&#xff0c;跟随下面的背包问题还会跟深入的理解。一、基本概念&#xff1a;任何…

js判断数组里是否有重复元素的方法

转&#xff1a; js判断数组里是否有重复元素的方法 https://blog.csdn.net/longzhoufeng/article/details/78840974第一种方法&#xff1a;但是下面的这种方法数字字符串类似相同&#xff0c;返回的还是真&#xff0c;有点不靠谱&#xff0c;如果是其它的字符是可以的 var ary1…

深入浅出讲算法思想--蛮力法思想分析及应用

蛮力法&#xff08;brute force method&#xff0c;也称为穷举法或枚举法&#xff09;是一种简单直接地解决问题的方法&#xff0c;常常直接基于问题的描述&#xff0c;所以&#xff0c;蛮力法也是最容易应用的方法。虽然&#xff0c;用蛮力法设计的算法时间特性往往也是最低的…

光耦在短距离通信中的应用

在高低压隔离系统设计中&#xff0c;难免会使用光耦来通信。在选择光耦器件时&#xff0c;需要考虑光耦允许的最大通信速率&#xff0c;否则在高速通信时会失败. 对于高速的光耦应用时&#xff0c;需要注意电流传输比率和开关速度。 参考文档《Basic Characteristics and Appli…

减治法解决八枚硬币问题/假币问题(JAVA)----二分,三分,不知轻重的情况

八枚硬币问题 在八枚外观相同的硬币中&#xff0c;有一枚是假币&#xff0c;并且已知假币与真币的重量不同&#xff0c;但不知道假币与真币相比较轻还是较重。可以通过一架天平来任意比较两组硬币&#xff0c;设计一个高效的算法来检测出这枚假币。 我们先假设一个条件&#xf…

减治法在查找算法中的应用(JAVA)--折半查找

减治法在查找算法中的应用 折半查找&#xff1a;(时间复杂度O(log以2为底n的对数)) 对于有序数组的查找来说&#xff0c;折半查找是一种非常高效的算法&#xff0c;其基本原理为&#xff1a;比较查找键k和数组中间元素a[m]&#xff0c;如果相等&#xff0c;算法结束&#xff…

牛客寒假算法基础集训营2 A处女座的签到题

处女座的签到题 链接&#xff1a;https://ac.nowcoder.com/acm/contest/327/A 题目描述 平面上有n个点&#xff0c;问&#xff1a;平面上所有三角形面积第k大的三角形的面积是多少?输入描述: 第一行T&#xff0c;表示样例的个数。对于每一组样例&#xff0c;第一行两个整数n和…

减治法解决约瑟夫斯问题(JAVA)

减治法在查找算法中的应用问题背景&#xff1a;据说著名犹太历史学家 Josephus有过以下的故事&#xff1a;在罗马人占领乔塔帕特后&#xff0c;39 个犹太人与Josephus及他的朋友躲到一个洞中&#xff0c;39个犹太人决定宁愿死也不要被敌人抓到&#xff0c;于是决定了一个自杀方…

从NetCore报错到MySql安全

从NetCore报错到MySql安全 原文:从NetCore报错到MySql安全之前项目在测试服务器上的一些接口时不时会报出下面的错误&#xff1a;&#xff08;采用Abp框架&#xff09; "SocketException: 你的主机中的软件中止了一个已建立的连接。 STACK TRACE: at MySqlConnector.Pr…