程序计算任意连续的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

相关文章

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.

Android实现任意版本设置默认的锁屏壁纸和桌面壁纸(两张壁纸可不一致)

客户有些需求需要设置默认壁纸和锁屏壁纸  在默认情况下 这两个壁纸是相同的  如果需要默认的锁屏壁纸和桌面壁纸不一样 需要额外修改 Android13实现 替换默认桌面壁纸: 将图片文件替换frameworks/base/core/res/res/drawable-nodpi/default_wallpaper.*  (注意不能是bmp格式) 替换默认锁屏壁纸: 将图片资源放入vendo

poj 1113 凸包+简单几何计算

题意: 给N个平面上的点,现在要在离点外L米处建城墙,使得城墙把所有点都包含进去且城墙的长度最短。 解析: 韬哥出的某次训练赛上A出的第一道计算几何,算是大水题吧。 用convexhull算法把凸包求出来,然后加加减减就A了。 计算见下图: 好久没玩画图了啊好开心。 代码: #include <iostream>#include <cstdio>#inclu

uva 1342 欧拉定理(计算几何模板)

题意: 给几个点,把这几个点用直线连起来,求这些直线把平面分成了几个。 解析: 欧拉定理: 顶点数 + 面数 - 边数= 2。 代码: #include <iostream>#include <cstdio>#include <cstdlib>#include <algorithm>#include <cstring>#include <cmath>#inc

uva 11178 计算集合模板题

题意: 求三角形行三个角三等分点射线交出的内三角形坐标。 代码: #include <iostream>#include <cstdio>#include <cstdlib>#include <algorithm>#include <cstring>#include <cmath>#include <stack>#include <vector>#include <

XTU 1237 计算几何

题面: Magic Triangle Problem Description: Huangriq is a respectful acmer in ACM team of XTU because he brought the best place in regional contest in history of XTU. Huangriq works in a big compa

XTU 1233 n个硬币连续m个正面个数(dp)

题面: Coins Problem Description: Duoxida buys a bottle of MaiDong from a vending machine and the machine give her n coins back. She places them in a line randomly showing head face or tail face o

EMLOG程序单页友链和标签增加美化

单页友联效果图: 标签页面效果图: 源码介绍 EMLOG单页友情链接和TAG标签,友链单页文件代码main{width: 58%;是设置宽度 自己把设置成与您的网站宽度一样,如果自适应就填写100%,TAG文件不用修改 安装方法:把Links.php和tag.php上传到网站根目录即可,访问 域名/Links.php、域名/tag.php 所有模板适用,代码就不粘贴出来,已经打

跨系统环境下LabVIEW程序稳定运行

在LabVIEW开发中,不同电脑的配置和操作系统(如Win11与Win7)可能对程序的稳定运行产生影响。为了确保程序在不同平台上都能正常且稳定运行,需要从兼容性、驱动、以及性能优化等多个方面入手。本文将详细介绍如何在不同系统环境下,使LabVIEW开发的程序保持稳定运行的有效策略。 LabVIEW版本兼容性 LabVIEW各版本对不同操作系统的支持存在差异。因此,在开发程序时,尽量使用