bigdecimal求和(bigdecimal求和需要判断非空吗)
class person{ int pv; BigDecimal payMoney; BigDecimal debtMoney; } 用java stream分组求和
创建一个class对象person,存放pv,paymoney,debtMoney这三个属性
再次创建map集合sum,用于存放统计结果
创建对象流ObjectStream,每次读取一个person对象,读取后进行累加操作。
得到求和后的map
thymeleaf将一个集合中对象的两个属性值的积求和
public class testOne {
public static void main(String[] args) {
CrowdfIe c = new CrowdfIe();
ListStoreIncome sList= new ArrayListStoreIncome();
for(int i=0;i10;i++){
StoreIncome s = new StoreIncome();
s.setDayIncome(BigDecimal.valueOf(i));
s.setAmount(i);
sList.add(s);
}
c.setStoreIncome(sList);
int num=0;
BigDecimal num2=BigDecimal.valueOf(0);
for(StoreIncome a:c.getStoreIncome()){
num+=a.getAmount();
num2=num2.add(a.getDayIncome());
}
System.out.println(num);
System.out.println(num2);
}
}
Java数组的问题,跪求答案,多谢了
package?test;
import?java.util.Scanner;
class?Computer{
//求和sum()方法
?public?long?sum(int?[]?args){
??long?n=0;
??for(int?i=0;i10;i++){
???n=args[i]+n;
??}
??return?n;
?}
?//求积multiply()方法
?public?long?multiply(int?[]?args){
??long?n=1;
??for(int?i=0;i10;i++){
???n=args[i]*n;
??}
??return?n;
?}
?//求最小数min()方法
?public??int?min(int?[]args){
??int?min?=args[0];
??for(int?i=0;i10;i++){
???if(args[i]min){
????min=args[i];
???}
??}
??return?min;
?}
?//求最大数max()?方法
?public??int?max(int?[]args){
??int?max=args[0];
??for(int?i=0;i10;i++){
???if(args[i]max){
????max=args[i];
???}
??}
??return?max;
?}
}
public?class?Test{
?public?static?void?main(String?[]?args){
??int?[]?n=new?int[10];
??Computer?computer=new?Computer();
??Scanner?scanner=new?Scanner(System.in);
??for(int?i=0;i10;i++){
???n[i]=scanner.nextInt();
??}
??System.out.println("sum:??"+computer.sum(n));
??System.out.println("multiply:??"+computer.multiply(n));
??System.out.println("min:??"+computer.min(n));
??System.out.println("max:??"+computer.max(n));
?}?
}
java用循环输入组数字怎么输出最大数和最小数
import?java.util.*;
public?class?Main
{
?public?static?void?main(String[]?argv)
?{
??Scanner?sc?=?new?Scanner(System.in);
??int?n?=?sc.nextInt();?//读入数组规模
??int?min,?max,?sum,?x;
??x?=?sc.nextInt();?//读入第一个元素
??min?=?x;???//对min、max、sum进行初始化
??max?=?x;
??sum?=?x;
??for(int?i=1;?in;?i++)?//读入数组
??{
???x?=?sc.nextInt();
???min?=?xmin???x?:?min;
???max?=?xmax???x?:?max;
???sum?+=?x;
??}
??System.out.println("最大值为:"?+?max);
??System.out.println("最小值为:"?+?min);
??System.out.println("和为:"?+?sum);
?}
}
请采纳。
编写一个JAVA程序,计算1!+2!+3!+...+20!之和并在屏幕上输出
public class test {
public static void main(String[] args) throws Exception {
int sum = 0;
for(int i=1;i=20;i++){
int temp = 1;
for(int j=1;j=i;j++){
temp*=j;
}
sum+=temp;
}
System.out.println("1-20阶乘的和为:"+sum);
}
}
答案补充:上面算法只适合于阶乘合并不是很大的情况 如果合超过int变量所能表达的值 就要用BigDecimal变量了~
例如上面程序计算1-21的阶乘和会是-927073767 导致错误
程序如下修改以后 答案就正确了53652269665821260313
非常感谢老大提醒~~~
public class T {
public static void main(String[] args) {
test2(20);
}
public static void test2(int k) {
BigDecimal total = new BigDecimal("0");
BigDecimal current = new BigDecimal("1");
for (int i = 1; i = k; i++) {
current = current.multiply(new BigDecimal(String.valueOf(i)));
total = total.add(current);
}
System.out.println(total);
}
}
java语言计算9,99,999,9999,.......9999999999的和
我们观察这组数字的规律,它是等比数列
10,100,1000...里面每个元素减一的出来的,初始数long num = 10
数列里面最大的数是9999999999,所以要有一个最大限制long max = 9999999999L;
再用一个变量存储总和long sum = 0;
所以代码为
public class Test {
public static void main(String[] args) {
long max = 9999999999L;
long sum = 0;
long num = 10;
while (num-1 = max) {
sum += (num - 1);
num*=10;
}
System.out.println(sum);
}
}
结果11111111100