[编程题]淘宝网店

淘宝网店

链接:https://www.nowcoder.com/questionTerminal/754921e9c98b43d1b2d70c227b844101
来源:牛客网

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

输入描述:
输入包含多组数据。
每组数据包含两个日期from和to (2000-01-01 ≤ from ≤ to ≤ 2999-12-31)。
日期用三个正整数表示,用空格隔开:year month day。

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

示例
输入
2000 1 1 2000 1 31
2000 2 1 2000 2 29
输出
62
29

代码示例:

#include <iostream>
using namespace std;

int ShouY(int month)
{
    int a[12]={2,1,1,2,1,2,1,2,2,2,1,2};
    return a[month-1];
}

int Days(int year,int month)
{
    int a[12]={31,28,31,30,31,30,31,31,30,31,30,31};
    if((year%4==0&&year%100!=0)||(year%400==0))
    {
        a[1]+=1;
    }
    return a[month-1];
}


int main()
{
    int year,month,day;
    int year2,month2,day2;
    while(cin>>year>>month>>day>>year2>>month2>>day2)
    {
        int sum=0;
        if(year==year2&&month==month2&&day==day2)
        {
            sum+=ShouY(month);
        }
        if(year==year2&&month==month2&&day!=day2)
        {
            sum+=(day2-day+1)*ShouY(month);
        }
        if(year==year2&&month!=month2)
        {
            sum+=(Days(year,month)-day+1)*ShouY(month);
            ++month;
            while(month<month2)
            {
                sum+=ShouY(month);
                ++month;
            }
            sum+=day2*ShouY(month2);
        }
        if(year!=year2)
        {
            sum+=(Days(year,month)-day+1)*ShouY(month);
            ++month;
            if(month==13)
            {
                ++year;
                month=1;
            }
            while(year<=year2)
            {
                sum+=Days(year,month)*ShouY(month);
                ++month;
                if(month==13)
                {
                    ++year;
                    month=1;
                }
            }
        }
        cout<<sum<<endl;
    }
    return 0;
}
发布了86 篇原创文章 · 获赞 188 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/qq_43239560/article/details/104701870