文章目录

  • 问题描述
    • 输入描述
    • 输出描述
  • 思路分析
  • 代码实现

问题描述

NowCoder在淘宝上开了一家网店。他发现在月份为素数的时候,当月每天能赚1元;否则每天能赚2元。
现在给你一段时间区间,请你帮他计算总收益有多少。

输入描述

输入包含多组数据。

每组数据包含两个日期from和to (2000-01-01 ≤ from ≤ to ≤ 2999-12-31)。

日期用三个正整数表示,用空格隔开:year month day。

输出描述

对应每一组数据,输出在给定的日期范围(包含开始和结束日期)内能赚多少钱。

题目链接:淘宝网店

思路分析

首先关于该问题的输入,主要有这样几种情况:

  1. 起始年份与结束年份在同一年,仅计算相隔的日期数即可;
  2. 起始年份与结束年份不在同一年,需要计算起始年份剩下的日期得到的收益、结束年份与起始年份之间的每一年全年的收益、结束年份至今的收益三部分;

另外还要注意几个特殊点:

  1. 当遇到闰年时,2月需要多加一天;
  2. 收益包括起始日期和结束日期当天的收益;

所以,这个问题实际就分成了几个部分,即几个方法,

  1. 闰年的判断;
  2. 素数月份的查找;
  3. 收益计算;

下面是具体的代码实现:

代码实现

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-淘宝网店相关推荐

  1. 我家的漫路超市——怎么开淘宝网店

    我家漫路超市开张啦!主营:零食.生活用品,网址http://manluu.taobao.com,欢迎光临啊!各位顺便帮我介绍给你们的朋友和同事,在此多谢啦! 虽然咱在IT领域也混了近十来年了,电子商务 ...

  2. 《淘宝网店》:计算总收益

    目录 一.题目 二.思路 1.当两个年份不一样的时候 (1)from年剩余之后的收益 (2)中间年份的全部收益 (3)to年有的收益 2.同一个年份 三.代码 详细注释版本: 简化注释版本: 一.题目 ...

  3. 淘宝网店应该怎么样去做好宝贝SEO优化?

    淘宝网店应该怎么样去做好宝贝SEO优化?相信这一点,有点经验的淘宝店主都是很重视这一点的,淘宝店铺如果要做好,那淘宝SEO就非常有必要,因为自然流量对于店铺的长远发展来看是具有战略意义的.下面一鸣叫兽 ...

  4. 怎么开淘宝网店?淘宝网开店流程图解,淘宝开店教程!

    下面我把开店的流程简单的介绍下,方便以后想开店的朋友,希望可以帮有需要的亲! 开淘宝网店方面大家有什么不懂得可以联系我QQ 5 5 1 7 8 0 9 7 7 淘宝开店是很简单的.只要拿身份证开通网银 ...

  5. 分享下通过开淘宝网店挣钱的经验,更激励下大家积极向上的动力

    按理说,我们做IT的,应当靠技术吃饭,但每个人都有自己的特点,所以适合每个人挣钱的方式也不同,而且IT技术更新太快,说吃青春饭也不为过,我们总要为40岁乃至45岁以后考虑一下. 前几天看到有网友分享做 ...

  6. 新手开淘宝网店怎样一个月安全达到一钻

    新手开淘宝网店怎样一个月安全达到一钻 也不多说了,说下新手们都关心的问题,就是怎么让店有流量,流量怎么转化为成交?其实说实话为了把店流量搞上去,我是啥办法都使用过的,论坛里面说的那些有用的和没用的,偶 ...

  7. 每日一题01、02(斐波那契凤尾、淘宝网店、美国节日、分解因数)

    1.在OSI分层模型中,把传输的比特流划分为帧,是哪一层的功能(C) A 物理层 B 网络层 C 数据链路层 D 传输层 2.下面关于源端口地址和目标端口地址的描述中,正确的是(A) A 在TCP/U ...

  8. 淘宝网店数据包使用方法教学

    淘宝网店数据包应用教程... 淘宝助理民圆下载地点: 本站供给淘宝数据包,瑰宝描写部门图片均标有本站火印,如需应用无火印图片,请接洽正在线客服讨取. 注:署理没有得将无火印图片间接上传淘宝,必需制造署 ...

  9. 弘辽科技:新手开淘宝网店的七大攻略

    原标题<弘辽科技:新手开淘宝网店的七大攻略> 伴随着计算机信息化技术的发展,互联网经济欣欣向荣,电子商务的发展也越加的繁荣.自从淘宝店上线之后,受到了很多朋友们的喜欢,因为它改变了人们的生 ...

  10. 弘辽科技:淘宝店铺一直没流量怎么办?淘宝网店没有流量怎么办?

    淘宝商家有时候会遇到店铺没流量的情况,当遇到这种情况时,我们一定要先找出问题,然后再找对应的方案,对症下药才能治本.那淘宝店铺一直没流量的话怎么办? 淘宝网店没有流量怎么办? 第一个方法:官方平台其实 ...

最新文章

  1. Python OpenCV像素操作
  2. Docker 不香吗,为啥还要 K8s?
  3. 山东大学计算机考博难度,山大博士发11篇SCI,坦言刚读研时自己也很迷茫
  4. Fedora安装Nvidia显卡驱动方法
  5. 前端的c语言面试题,前端工程师面试题汇总(选择题)
  6. 最早使用计算机领域,第2章 交换单元及交换网络(2.3.4).ppt
  7. DB2数据库关于delete in id和batch delete的性能对比
  8. php中的全局异常,tp5 API 自定义全局异常处理(中)
  9. 使用Google zxing生成二维码
  10. 活用锚点解决的问题(由一个简单应用想到的许多)
  11. python电影院售票系统毕业设计开题报告
  12. 黑链-最高明的网站隐藏链接方法
  13. Selenium1、Selenium2、Selenium3的区别,终于讲清楚了
  14. 两个文件定义了同名的变量,会是同一个变量吗?
  15. “adb”不是内部或外部命令的解决方法
  16. Android多进程从头讲到尾,Android开发知识点
  17. fetion飞信登录异常,错误码10033201、10033202
  18. 【Tools】神经网络、深度学习和机器学习模型可视化工具——Netron
  19. 蓝桥杯EDA赛前总结
  20. android10手机众筹,世界上最小的Android 10手机海外众筹,竟是来自中国?

热门文章

  1. jersey跨域文件上传
  2. 什么是动态代理?应用场景?
  3. 投资30万、囤鞋70双,我被Web3“走赚游戏”套路了?
  4. java byte 和 int 转换
  5. Windows Update 错误 80072ee2
  6. Django之跳转回原路径
  7. Focal Loss 论文理解及公式推导
  8. 5个套路看懂小程序开发
  9. 思科设备端口聚合配置命令
  10. Web开发工具之HBuilder初探