我怕你是初学者对java的泛型和集合List不太熟悉,这里使用了栈Stack来完成,应该便于你理解。
整体思路为:
1、使用一个栈将输入的全部数字push进入;
2、遍历第一个栈(挨个pop出来),遍历的时候把偶数和奇数分别push到新的一个偶数栈(evenNumber)和一个奇数栈(oddNumber)之中;
3、调用方法getEvenNumberSum(Stack evenNumber),计算偶数的平方和返回;
4、调用方法getOddNumberSum(Stack oddNumber),计算奇数的立方和返回;
5、输出结果。
代码:
class Test {
public static void main(String[] args) {
int input
Stack inputs = new Stack()//所有数字栈
while (true) {
Scanner in = new Scanner(System.in)
input = in.nextInt()
if (input != -1) {
inputs.push(input)//所有数字入栈
} else {
break
}
}
Stack evenNumber = new Stack()//偶数栈
Stack oddNumber = new Stack()//奇数栈
int inputSize = inputs.size()//共有多少数字
for (int i = 0i <inputSizei++) {
input = (int) inputs.pop()////所有数字出栈
if (input % 2 == 0) {
evenNumber.push(input)//偶数入偶数栈
} else {
oddNumber.push(input)//奇数入技术栈
}
}
System.out.println("所有偶数平方和:" + getEvenNumberSum(evenNumber))
System.out.println("所有奇数立方和:" + getOddNumberSum(oddNumber))
}
//计算偶数栈平方和
private static int getEvenNumberSum(Stack evenNumber) {
int sum = 0
int evenNumberSize = evenNumber.size()//偶数个数
int number
for (int i = 0i <evenNumberSizei++) {
number = (int) evenNumber.pop()//出栈
sum += (number * number)//累加平方和
}
return sum
}
//计算奇数栈立方和
private static int getOddNumberSum(Stack oddNumber) {
int sum = 0
int oddNumberSize = oddNumber.size()//奇数个数
int number
for (int i = 0i <oddNumberSizei++) {
number = (int) oddNumber.pop()//出栈
sum += (number * number * number)//累加立方和
}
return sum
}
}
运行结果为:
另外说一下你题目里给的奇数的立方和结果算错了吧,输入 1 2 3 4,则立方和应该为:1^3 + 3^3 = 1 + 27 =28.
气,代码又又又被挤到一起了,我截个图给你看下:
57-83行
83-111行完
Java语言核心基础和编程思路 :
首先接触的是Java的基础知识,比如class、属性、方法等等。然后在学习过程中理解面向对象的概念。 在理解了面向对象的概念后,我开始学习Java的语法和一些API的使用。同时Java要培养自己良好的编码习惯,对于包名、、类名、、方法名等都有自己的命名规范。这时候尽量按照标准写代码,记得养成写代码的坏习惯。 熟悉了常用的API和语法后,要学习I/O和Stream,多线程编程和网络编程。Java语言的核心基础还包括Tomcat、 Servlet、 JSP等等。 基础很重要。虽然简单,但也不能马虎。俗话说,高楼平地起,基础扎实,为他们以后的学习创造更好的条件。
数据库技术 :
掌握了基础知识之后,就可以开始学习数据库了。众所周知,对于Java企业软件开发,每100个项目有100个数据处理服务,都需要数据库技术。因此,对于一个Java程序员来说,学习数据库技术是非常重要的。没有一个Java程序员会写SQL。
前端技术 :
前端技术有哪些?从开发常识开始,学习PS切图,HTML5网页技术,CSS3层叠样式表,JavaScript,以及jQuery等。前端技术对于一个Java程序员里说,不是必须的,但是很有必要。 首先,从技术体系结构来看,Java语言本身与前端之间就存在一定的联系。其次,拥有前端知识能够书写出比较完善的页面,有助于项目部署和运维。尤其像国内的很多小公司,需要Java程序员不仅会Java,还需懂前端,知道前后端如何交互,会写JS。
框架技术 :
框架主要分为前端框架和后端框架。 前端框架主要的就是jQuery、BootStrap和VUE。 后端框架主要的就是SSM企业框架,即Spring、SpringMVC、MyBatis。还有其他诸如SpringBoot、SpringCloud等都可以进行学习。