程序计算任意连续的12个月公里数不超三万公里预警

2023-10-12 16:59

本文主要是介绍程序计算任意连续的12个月公里数不超三万公里预警,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

为了比亚迪的电池终身质保,写了个简单算法,计算任意12个连续的月份公里数加起来不超过3万公里的预警import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Scanner;
import java.util.stream.Collectors;/*** @Auther: LGH* @Date: 2023/4/26 15:48* @Description:*/
public class Test {public static void main(String[] args) {while (true){Scanner scan=new Scanner(System.in);System.out.println("请输入开始年月份(如:202301):");String month=scan.nextLine();System.out.println("请输入每月公里数逗号隔开(如:2300,1233,3343):");Scanner scan1=new Scanner(System.in);String amount=scan1.nextLine();if (amount.indexOf(",")<0){System.out.println("你输入的格式不正确");}String [] hevs=amount.split(",");List<Integer> months=new ArrayList<>();int length=hevs.length;int sum=0;int begain=0;int[] array = Arrays.asList(hevs).stream().mapToInt(Integer::parseInt).toArray();int max=0;int min=0;String maxYear=null;String minYear=null;StringBuffer stringBuffer=new StringBuffer();for (int i=0;i<length;i++){int hev=array[i];max=hev;min=hev;int k=0;sum+=hev;months.clear();months.add(hev);minYear=handelYear(month,i);maxYear=handelYear(month,i);k++;for (int j=i+1;j<length;j++){months.add(array[j]);if (array[j]>max){max=array[j];maxYear=handelYear(month,j);}if (array[j]<min){min=array[j];minYear=handelYear(month,j);}sum+= array[j];k++;String s="ssssss";if (k==12){if (j<12){System.out.println("从"+month+"至"+handelYear(month,11)+"的连续12个月的总里程:"+sum+"公里,平均每月行驶:"+sum/k+"公里,其中"+maxYear+"是单月最大行驶:"+max+"公里,"+minYear+"是单月最小行驶公里数:"+min+"公里");stringBuffer.append("从"+month+"至"+handelYear(month,11)+"里程详情"+months.stream().map(String::valueOf).collect(Collectors.joining(","))+System.getProperty("line.separator"));}else{System.out.println("从"+handelYear(month,i)+"至"+handelYear(handelYear(month,i),11)+"的连续12个月的总里程:"+sum+"公里,平均每月行驶:"+sum/k+"公里,其中"+maxYear+"是单月最大行驶:"+max+"公里,"+minYear+"是单月最小行驶公里数:"+min+"公里");stringBuffer.append("从"+handelYear(month,i)+"至"+handelYear(handelYear(month,i),11)+"里程详情"+months.stream().map(String::valueOf).collect(Collectors.joining(","))+System.getProperty("line.separator"));}sum=0;k=0;break;}else if  (k<12&&j==length-1){
if (j<12){System.out.println("从"+handelYear(month,i)+"至"+handelYear(month,length-1)+"的连续"+ k+"个月的总里程:"+sum+"公里,平均每月行驶:"+sum/(k)+"公里,剩余的"+(12-k)+"个月內请控制在"+(count-sum)+"公里内,其中"+maxYear+"是单月最大行驶:"+max+"公里,"+minYear+"是单月最小行驶公里数:"+min+"公里");//System.out.println("从"+month+"至"+handelYear(month,11)+"里程详情"+months.stream().map(String::valueOf).collect(Collectors.joining(",")));stringBuffer.append("从"+handelYear(month,i)+"至"+handelYear(month,length-1)+"里程详情"+months.stream().map(String::valueOf).collect(Collectors.joining(","))+System.getProperty("line.separator"));
}else{System.out.println("从"+handelYear(month,i)+"至"+handelYear(handelYear(month,i),k-1)+"的连续"+ k+"个月的总里程:"+sum+"公里,平均每月行驶:"+sum/(k)+"公里,剩余的"+(12-k)+"个月內请控制在"+(count-sum)+"公里内,其中"+maxYear+"是单月最大行驶:"+max+"公里,"+minYear+"是单月最小行驶公里数:"+min+"公里");stringBuffer.append("从"+handelYear(month,i)+"至"+handelYear(handelYear(month,i),k-1)+"里程详情"+months.stream().map(String::valueOf).collect(Collectors.joining(","))+System.getProperty("line.separator"));
}
sum=0;
k=0;
break;
                    }}}System.out.println(stringBuffer.toString());}}public static String  handelYear(String month,int length){int year=Integer.valueOf(month.substring(0,4));String mo=month.substring(4,6);int mon=0;if (mo.startsWith("0")){mon=Integer.valueOf(month.substring(5,6));}else{mon=Integer.valueOf(month.substring(4,6));}mon=mon+length;int j=mon/12;if (mon>12){year=year+j;mon=mon-12*j;}String yearmon=null;if (mon>9){yearmon=String.valueOf(year)+String.valueOf(mon);}else{if (mon==0){mon=mon+1;}yearmon=String.valueOf(year)+"0"+String.valueOf(mon);}return yearmon;}
}

这篇关于程序计算任意连续的12个月公里数不超三万公里预警的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/197214

相关文章

SpringBoot实现微信小程序支付功能

《SpringBoot实现微信小程序支付功能》小程序支付功能已成为众多应用的核心需求之一,本文主要介绍了SpringBoot实现微信小程序支付功能,文中通过示例代码介绍的非常详细,对大家的学习或者工作... 目录一、引言二、准备工作(一)微信支付商户平台配置(二)Spring Boot项目搭建(三)配置文件

如何用java对接微信小程序下单后的发货接口

《如何用java对接微信小程序下单后的发货接口》:本文主要介绍在微信小程序后台实现发货通知的步骤,包括获取Access_token、使用RestTemplate调用发货接口、处理AccessTok... 目录配置参数 调用代码获取Access_token调用发货的接口类注意点总结配置参数 首先需要获取Ac

基于Python开发PDF转Doc格式小程序

《基于Python开发PDF转Doc格式小程序》这篇文章主要为大家详细介绍了如何基于Python开发PDF转Doc格式小程序,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 用python实现PDF转Doc格式小程序以下是一个使用Python实现PDF转DOC格式的GUI程序,采用T

将java程序打包成可执行文件的实现方式

《将java程序打包成可执行文件的实现方式》本文介绍了将Java程序打包成可执行文件的三种方法:手动打包(将编译后的代码及JRE运行环境一起打包),使用第三方打包工具(如Launch4j)和JDK自带... 目录1.问题提出2.如何将Java程序打包成可执行文件2.1将编译后的代码及jre运行环境一起打包2

Python如何计算两个不同类型列表的相似度

《Python如何计算两个不同类型列表的相似度》在编程中,经常需要比较两个列表的相似度,尤其是当这两个列表包含不同类型的元素时,下面小编就来讲讲如何使用Python计算两个不同类型列表的相似度吧... 目录摘要引言数字类型相似度欧几里得距离曼哈顿距离字符串类型相似度Levenshtein距离Jaccard相

在不同系统间迁移Python程序的方法与教程

《在不同系统间迁移Python程序的方法与教程》本文介绍了几种将Windows上编写的Python程序迁移到Linux服务器上的方法,包括使用虚拟环境和依赖冻结、容器化技术(如Docker)、使用An... 目录使用虚拟环境和依赖冻结1. 创建虚拟环境2. 冻结依赖使用容器化技术(如 docker)1. 创

使用C#代码计算数学表达式实例

《使用C#代码计算数学表达式实例》这段文字主要讲述了如何使用C#语言来计算数学表达式,该程序通过使用Dictionary保存变量,定义了运算符优先级,并实现了EvaluateExpression方法来... 目录C#代码计算数学表达式该方法很长,因此我将分段描述下面的代码片段显示了下一步以下代码显示该方法如

如何用Java结合经纬度位置计算目标点的日出日落时间详解

《如何用Java结合经纬度位置计算目标点的日出日落时间详解》这篇文章主详细讲解了如何基于目标点的经纬度计算日出日落时间,提供了在线API和Java库两种计算方法,并通过实际案例展示了其应用,需要的朋友... 目录前言一、应用示例1、天安门升旗时间2、湖南省日出日落信息二、Java日出日落计算1、在线API2

JAVA智听未来一站式有声阅读平台听书系统小程序源码

智听未来,一站式有声阅读平台听书系统 🌟&nbsp;开篇:遇见未来,从“智听”开始 在这个快节奏的时代,你是否渴望在忙碌的间隙,找到一片属于自己的宁静角落?是否梦想着能随时随地,沉浸在知识的海洋,或是故事的奇幻世界里?今天,就让我带你一起探索“智听未来”——这一站式有声阅读平台听书系统,它正悄悄改变着我们的阅读方式,让未来触手可及! 📚&nbsp;第一站:海量资源,应有尽有 走进“智听

poj2406(连续重复子串)

题意:判断串s是不是str^n,求str的最大长度。 解题思路:kmp可解,后缀数组的倍增算法超时。next[i]表示在第i位匹配失败后,自动跳转到next[i],所以1到next[n]这个串 等于 n-next[n]+1到n这个串。 代码如下; #include<iostream>#include<algorithm>#include<stdio.h>#include<math.