do-exercise-淘宝网店
文章目录
- 问题描述
- 输入描述
- 输出描述
- 思路分析
- 代码实现
问题描述
NowCoder在淘宝上开了一家网店。他发现在月份为素数的时候,当月每天能赚1元;否则每天能赚2元。
现在给你一段时间区间,请你帮他计算总收益有多少。
输入描述
输入包含多组数据。
每组数据包含两个日期from和to (2000-01-01 ≤ from ≤ to ≤ 2999-12-31)。
日期用三个正整数表示,用空格隔开:year month day。
输出描述
对应每一组数据,输出在给定的日期范围(包含开始和结束日期)内能赚多少钱。
题目链接:淘宝网店
思路分析
首先关于该问题的输入,主要有这样几种情况:
- 起始年份与结束年份在同一年,仅计算相隔的日期数即可;
- 起始年份与结束年份不在同一年,需要计算起始年份剩下的日期得到的收益、结束年份与起始年份之间的每一年全年的收益、结束年份至今的收益三部分;
另外还要注意几个特殊点:
- 当遇到闰年时,2月需要多加一天;
- 收益包括起始日期和结束日期当天的收益;
所以,这个问题实际就分成了几个部分,即几个方法,
- 闰年的判断;
- 素数月份的查找;
- 收益计算;
下面是具体的代码实现:
代码实现
import java.util.Scanner;public class Main {//判断是否为闰年private static boolean isLeapYear(int year){return year%400==0||(year%4==0&&year%100!=0);}//计算某一年全年的收益,如果是闰年,需要多加一天private static int profitYear(int Year){return 2 * 31+1 * 28+1 * 31+2 * 30+1 * 31+2 * 30+1 * 31+2 * 31+2 * 30+2 * 31+1 * 30+2 * 31+(isLeapYear(Year)?1:0);}//查询月份是否为素数月份;private static boolean isPrime(int month){return month==2||month==3||month==5||month==7||month==11;}private static int profitOfYear(int year,int month,int day){int profit=0;//素数月份每天的收益为1,非素数月份每天的收益为2if(!isPrime(month)){profit=day*2;}else{profit=day;}//循环计算每个月的收益while (--month>0){switch (month){case 1:case 8:case 10:case 12:profit+=(2*31);break;case 4:case 6:case 9:profit+=(2*30);break;case 3:case 5:case 7:profit+=(1*31);break;case 11:profit+=30;break;case 2:profit+=28+(isLeapYear(year)?1:0);break;}}return profit;}public static void main(String[] args) {int year1,month1,day1;int year2,month2,day2;int profit=0;Scanner scanner=new Scanner(System.in);while (scanner.hasNextInt()){year1=scanner.nextInt();month1=scanner.nextInt();day1=scanner.nextInt();year2=scanner.nextInt();month2=scanner.nextInt();day2=scanner.nextInt();//起始年份到下一年剩下的收益profit=profitYear(year1)-profitOfYear(year1,month1,day1-1);//结束年份的收益profit+=profitOfYear(year2,month2,day2);//如果起始年份与结束年份是同一年,需要减去多余计算的一整年的收益if (year1==year2){profit-=profitYear(year1);}//起始年份与结束年份不是同一年,循环计算起始年份与结束年份之间每一年的收益for (int i=year1+1;i<year2;i++){profit+=profitYear(i);}System.out.println(profit);}}
}
over!
do-exercise-淘宝网店相关推荐
- 我家的漫路超市——怎么开淘宝网店
我家漫路超市开张啦!主营:零食.生活用品,网址http://manluu.taobao.com,欢迎光临啊!各位顺便帮我介绍给你们的朋友和同事,在此多谢啦! 虽然咱在IT领域也混了近十来年了,电子商务 ...
- 《淘宝网店》:计算总收益
目录 一.题目 二.思路 1.当两个年份不一样的时候 (1)from年剩余之后的收益 (2)中间年份的全部收益 (3)to年有的收益 2.同一个年份 三.代码 详细注释版本: 简化注释版本: 一.题目 ...
- 淘宝网店应该怎么样去做好宝贝SEO优化?
淘宝网店应该怎么样去做好宝贝SEO优化?相信这一点,有点经验的淘宝店主都是很重视这一点的,淘宝店铺如果要做好,那淘宝SEO就非常有必要,因为自然流量对于店铺的长远发展来看是具有战略意义的.下面一鸣叫兽 ...
- 怎么开淘宝网店?淘宝网开店流程图解,淘宝开店教程!
下面我把开店的流程简单的介绍下,方便以后想开店的朋友,希望可以帮有需要的亲! 开淘宝网店方面大家有什么不懂得可以联系我QQ 5 5 1 7 8 0 9 7 7 淘宝开店是很简单的.只要拿身份证开通网银 ...
- 分享下通过开淘宝网店挣钱的经验,更激励下大家积极向上的动力
按理说,我们做IT的,应当靠技术吃饭,但每个人都有自己的特点,所以适合每个人挣钱的方式也不同,而且IT技术更新太快,说吃青春饭也不为过,我们总要为40岁乃至45岁以后考虑一下. 前几天看到有网友分享做 ...
- 新手开淘宝网店怎样一个月安全达到一钻
新手开淘宝网店怎样一个月安全达到一钻 也不多说了,说下新手们都关心的问题,就是怎么让店有流量,流量怎么转化为成交?其实说实话为了把店流量搞上去,我是啥办法都使用过的,论坛里面说的那些有用的和没用的,偶 ...
- 每日一题01、02(斐波那契凤尾、淘宝网店、美国节日、分解因数)
1.在OSI分层模型中,把传输的比特流划分为帧,是哪一层的功能(C) A 物理层 B 网络层 C 数据链路层 D 传输层 2.下面关于源端口地址和目标端口地址的描述中,正确的是(A) A 在TCP/U ...
- 淘宝网店数据包使用方法教学
淘宝网店数据包应用教程... 淘宝助理民圆下载地点: 本站供给淘宝数据包,瑰宝描写部门图片均标有本站火印,如需应用无火印图片,请接洽正在线客服讨取. 注:署理没有得将无火印图片间接上传淘宝,必需制造署 ...
- 弘辽科技:新手开淘宝网店的七大攻略
原标题<弘辽科技:新手开淘宝网店的七大攻略> 伴随着计算机信息化技术的发展,互联网经济欣欣向荣,电子商务的发展也越加的繁荣.自从淘宝店上线之后,受到了很多朋友们的喜欢,因为它改变了人们的生 ...
- 弘辽科技:淘宝店铺一直没流量怎么办?淘宝网店没有流量怎么办?
淘宝商家有时候会遇到店铺没流量的情况,当遇到这种情况时,我们一定要先找出问题,然后再找对应的方案,对症下药才能治本.那淘宝店铺一直没流量的话怎么办? 淘宝网店没有流量怎么办? 第一个方法:官方平台其实 ...
最新文章
- Python OpenCV像素操作
- Docker 不香吗,为啥还要 K8s?
- 山东大学计算机考博难度,山大博士发11篇SCI,坦言刚读研时自己也很迷茫
- Fedora安装Nvidia显卡驱动方法
- 前端的c语言面试题,前端工程师面试题汇总(选择题)
- 最早使用计算机领域,第2章 交换单元及交换网络(2.3.4).ppt
- DB2数据库关于delete in id和batch delete的性能对比
- php中的全局异常,tp5 API 自定义全局异常处理(中)
- 使用Google zxing生成二维码
- 活用锚点解决的问题(由一个简单应用想到的许多)
- python电影院售票系统毕业设计开题报告
- 黑链-最高明的网站隐藏链接方法
- Selenium1、Selenium2、Selenium3的区别,终于讲清楚了
- 两个文件定义了同名的变量,会是同一个变量吗?
- “adb”不是内部或外部命令的解决方法
- Android多进程从头讲到尾,Android开发知识点
- fetion飞信登录异常,错误码10033201、10033202
- 【Tools】神经网络、深度学习和机器学习模型可视化工具——Netron
- 蓝桥杯EDA赛前总结
- android10手机众筹,世界上最小的Android 10手机海外众筹,竟是来自中国?