java基础算法题集合(java算法题,要用java语言写的)
本文目录
- java算法题,要用java语言写的
- 计算机java程序设计与算法试题求解
- java算法问题 排列组合 给定一组字符串,产生所有可能的集合
- 关于java算法编程的问题,输入成绩,判断每门课得分的范围是否合理,输入时候用空格分割,
- JAVA排列组合算法如题:用x、y,求出指定长度的所有排列组合
- java 递归算法问题:(n,k)=(n-1,k-1)+(n-1,k)
java算法题,要用java语言写的
import java.util.ArrayList;import java.util.List;import java.util.Scanner;public class MyStack {public static void main(String args) {List《ArrayList《Integer》》 listAll = new ArrayList《ArrayList《Integer》》();Scanner scanner = new Scanner(System.in);// 获取第一行输入的数据String s1 = scanner.nextLine();String ss1 = s1.split(" ");List《Integer》 listRow;String sTemp;String ssTemp;for (int i = 0; i 《 Integer.parseInt(ss1); i++) {listRow = new ArrayList《Integer》();sTemp = scanner.nextLine();ssTemp = sTemp.split(" ");for (int j = 0; j 《 ssTemp.length; j++) {listRow.add(Integer.parseInt(ssTemp));}listAll.add((ArrayList《Integer》) listRow);}List《ArrayList《Integer》》 xulie = new ArrayList《ArrayList《Integer》》();xulie = xl(Integer.parseInt(ss1));int sum = 0;for (int i = 0; i 《 listAll.size(); i++) {sum += selectMaxRow(xulie, listAll.get(i));}System.out.println("总得分:" + sum);}/** * 算出指定数组,按照某种序列计算得分后,最大的结果 * * @param xulie * @param listRow */private static int selectMaxRow(List《ArrayList《Integer》》 xulie,List《Integer》 listRow) {int maxRow = 0;for (int i = 0; i 《 xulie.size(); i++) {if (calRow(xulie.get(i), listRow) 》 maxRow) {maxRow = calRow(xulie.get(i), listRow);}}return maxRow;}/** * 根据某种序列,计算指定数组的得分 * * @param listRow * @return */private static int calRow(List《Integer》 xul, List《Integer》 listRow) {int sumRow = 0;for (int i = 0; i 《 xul.size(); i++) {sumRow += listRow.get(xul.get(i) - 1) * abI(i + 1);}return sumRow;}/** * 计算2的i次方 * * @param i * @return */private static Integer abI(int abi) {int sumi = 1;for (int i = 0; i 《 abi; i++) {sumi *= 2;}return sumi;}/** * 对于一个m列的数组,每次取行首或者行尾,所得出的取值顺序序列一共有2^(m-1)种. exp: m=3,return: {1,2,3} * {1,3,2} {3,1,2} {3,2,1}。 返回的数组,其中各项的位置不重要 * * @param m * @return 返回数组的每一种取值顺序序列 */public static List《ArrayList《Integer》》 xl(int m) {List《ArrayList《Integer》》 l = new ArrayList《ArrayList《Integer》》();l.add(new ArrayList《Integer》());for (int i = 1; i 《= m; i++) {if (i == 1) {l.get(0).add(1);} else {int lsize = l.size();for (int j = 0; j 《 lsize; j++) {List《Integer》 ltemp = new ArrayList《Integer》();copy(ltemp, l.get(j));// 添加一项到数组头位置,并赋值为 1ltemp.add(0, 1);l.add((ArrayList《Integer》) ltemp);// 在该序列的最前面 添加 il.get(j).add(0, i);}}}return l;}/** * 把List lf里面的值+1后 复制到ltemp中去 * * @param ltemp * @param lf */private static void copy(List《Integer》 ltemp, ArrayList《Integer》 lf) {for (int i = 0; i 《 lf.size(); i++) {ltemp.add(lf.get(i) + 1);}}}
计算机java程序设计与算法试题求解
.java解释不执行高级main声明String顺序、选择、循环false没有90true静态局部变量Integer.parseInt()5break、continue、returnrandom.nextInt(100)定义一个数组的引用、对数组进行初使化、数组越界封装、继承、多态path、classpath可以100continuebooleanrand.nextInt(5)double没有顺序、选择、循环System.out.println(m+1)x定义了但没有赋值、语法单行、多行10数组的引用floaty=Integer.parseInt(x)一个publicpublic static int a()
java算法问题 排列组合 给定一组字符串,产生所有可能的集合
这是我写的一个取组合的方法:package Combination.c3;import java.util.ArrayList;import java.util.List;public class Combinations { /* * 设有n个元素,组合数量有2的n次方种。 * 对 0 到 2的n次方-1 中的每个数,考察其二进制位形式,位数为1代表相应元素加入 * 到组合,0则不加入该元素至组合。 * * 取组合方法 * 参数: list ---- 原始数组 * 返回: 包含所有组合数组的数组 */ public static List《List《Object》》 getCombinations(List《Object》 list) { List《List《Object》》 result = new ArrayList《List《Object》》(); long n = (long)Math.pow(2,list.size()); List《Object》 combine; for (long l=0L; l《n; l++) { combine = new ArrayList《Object》(); for (int i=0; i《list.size(); i++) { if ((l》》》i&1) == 1) combine.add(list.get(i)); } result.add(combine); } return result; } //测试 public static void main(String args) { ArrayList《Object》 list = new ArrayList《Object》(); list.add("a"); list.add("b"); list.add("c"); list.add("d"); list.add("e"); list.add("f"); list.add("g"); list.add("h"); list.add("i"); list.add("j"); List《List《Object》》 result = getCombinations(list); System.out.println(list.toString()); System.out.println(result.toString()); }}
关于java算法编程的问题,输入成绩,判断每门课得分的范围是否合理,输入时候用空格分割,
一、题目分析:要计算每个学生的平均成绩,需要获取如下信息:1、学生总数;2、科目数;3、每个学生每科的成绩。然后累加每个学生的总分,并计算总成绩。二、算法设计:1、输入学生总数;2、输入科目数;3、对于每个学生,输入各科成绩,计算总分及平均分,保存平均分值。4、输出结果。三、参考代码:#include 《stdio.h》#include 《stdlib.h》int main(){int n, m;float *p;int i,j;scanf("%d%d",&n,&m);//输入学生总数n和学科总数m。p = (float *)malloc(sizeof(float)*n);//申请空间以存储平均分。for(i = 0; i 《 n; i ++){p = 0;//初始为0.for(j = 0; j 《 m; j ++)//输入每个学生每科成绩。{float t;scanf("%f",&t);p+=t;//累加获得总分。}p/=m;//计算平均分。}for(i = 0; i 《 n; i ++)//输出结果。printf("%f\n", p);free(p);//释放内存。return 0;}
JAVA排列组合算法如题:用x、y,求出指定长度的所有排列组合
按照你的要求编写的求x,y指定长度的所有排列组合的Java程序如下
import java.util.ArrayList;import java.util.List;public class EE { public static void combination(List《String》 list, String sNumbers, String sPath, int ALen) { if (sPath.length()== ALen) { list.add(sPath); return; } for(int i=0;i《sNumbers.length();i++) { combination(list,sNumbers,sPath +sNumbers.substring(i,i+1), ALen); } } public static void main(String args) { List《String》 output = new ArrayList《String》(); System.out.println("组合"); combination(output,"xy", "", 5); for(String s: output) System.out.print(s+" "); System.out.println(); System.out.println("共"+output.size()+"个"); }}
运行结果
组合
xxxxx xxxxy xxxyx xxxyy xxyxx xxyxy xxyyx xxyyy xyxxx xyxxy xyxyx xyxyy xyyxx xyyxy xyyyx xyyyy yxxxx yxxxy yxxyx yxxyy yxyxx yxyxy yxyyx yxyyy yyxxx yyxxy yyxyx yyxyy yyyxx yyyxy yyyyx yyyyy
共32个
java 递归算法问题:(n,k)=(n-1,k-1)+(n-1,k)
(n,k)=(n-1,k-1)+(n-1,k) 就是说 n 个里面要选 k 个,分为两组,包含 A和不包含A。包含 A : 已经包含A了,所以总数是 n-1 个了;同理,已经包含了A,所以只要选 k -1 个就可以了,所以为 (n-1,k-1)。不包含A:已经不包含A了,所以总数是 n-1 个;还是选 k个,所以为(n-1,k)。 无限递归即可以了。
更多文章:
有哪些比较准确的手机地图导航软件?国内自驾游使用哪种导航最靠谱
2024年7月1日 07:52
绿松石为什么那么贵(怎么盘绿松石才正确 绿松石为什么那么贵)
2024年7月25日 11:46
importance的形容词(important有没有什么变化形式,比如ing形式或过去式等等,能把你知道的都写出来吗)
2024年7月15日 11:27
滑块轴承调节器(滑动轴承中的有一种是自动调心轴承,一般用在什么地方,举一些具体的例子)
2024年7月22日 04:20
数据分析师八大能力培养(什么类指标是电子商务数据监控的核心之一)
2024年6月26日 10:17
c语言12345输出54321(输入一个整数,将其逆序输出,去(输入12345输出54321)这道题怎么做啊求解)
2024年7月24日 01:21
strcmp函数会忽略大小写吗(if(strcmp(ch,“Y“)==0||strcmp(ch,“y“)==0))
2024年6月2日 02:20
snap翻译成中文(中国古代文言文言简意赅,为什么要发展成现代白话罗啰嗦嗦)
2024年6月6日 02:23
正则表达式6位数字怎么写(java 三位字母加6位数字的正则表达式怎么写)
2024年7月23日 23:14
企业微信直播一直数据加载中(进入企业微信直播显示数据加载中)
2024年7月11日 11:41
dede模板文件(dede网站 站内搜索时提示“模板文件不存在,无法解析”是怎么回事那位大师给指点一下)
2024年6月25日 07:39
concerta(Cash Cash的《Concerta》 歌词)
2024年7月10日 13:29
哈夫曼树的叶子结点怎么算(n个叶子结点的哈夫曼树有多少个结点)
2024年8月7日 00:05