4 条题解

  • 0
    @ 2024-5-23 19:54:36

    简单易懂的代码

    #include <bits/stdc++.h>
    using namespace std;
    int a,b,c,d,e,f,sum = 0;
    int main(){
    	cin >> a >> b >> c >> d >> e >> f;
    	while(!(a == d && b == e && c == f)){
    		c++;
    		sum++;
    		if((b == 1 || b == 3 || b == 5 || b == 7 || b == 8 || b == 10 || b == 12) && c == 32){
    			c = 1;
    			b++;
    		}
    		if((b == 4 || b == 6 || b == 9 || b == 11) && c == 31){
    			c = 1;
    			b++;
    		}
    		if(b == 2 && ((a % 100 == 0 && a % 400 == 0) || (a % 100 != 0 && a % 4 == 0)) && c == 30){
    			c = 1;
    			b++;
    		}
    		if(b == 2 && (!((a % 100 == 0 && a % 400 == 0) || (a % 100 != 0 && a % 4 == 0))) && c == 29){
    			c = 1;
    			b++;
    		}
    		if(b == 13){
    			b = 1;
    			a++;
    		}
    	}
    	cout << sum << endl;
    	return 0;
    }
    
    • -1
      @ 2024-4-26 17:50:15

      #include #include #include #include #include #include #include #include #include<math.h> #include #include #include #include #include #include<stdio.h> #include #include #include #include<string.h> #include #include<bits/stdc++.h> using namespace std; #define in int #define ch char #define lo long #define fl float #define sh short #define db double #define str string #define ll long long #define ld long double #define lli long long int const int N =1e5+10; const int INF =0x3f3f3f3f; int lapeyear(int year2)//闰年判断函数 { if ((year2 % 400 == 0) || (year2 % 4 == 0 && year2 % 100 != 0)) return 1; else return 0; } int years1(int year1, int year2)//计算两年间的天数 { int d = 0, i, r = 0, z = 0; if (year1 < year2) { for (i = year1 + 1; i < year2; i++) { if (lapeyear(i))r++;//两年之间有多少个闰月 } d = (year2 - year1 - 1) * 365 + r; } else { for (i = year2 + 1; i < year1; i++) { if (lapeyear(i))r++;//两年之间有多少个闰月 } d = (year1 - year2 - 1) * 365 + r; } return d; } int months2(int year, int month, int date)//计算到年初日差的函数 { int i, d = 0; int years[12] = { 31,28,31,30,31,30,31,31,30,31,30,31 }; if (lapeyear(year))years[1] = 29; for (i = 0; i < month - 1; i++) { d += years[i]; } d += date; return d; } int months1(int year, int month, int date)//计算到年底日差的函数 { int i, d = 0; int years[12] = { 31,28,31,30,31,30,31,31,30,31,30,31 }; if (lapeyear(year))years[1] = 29; for (i = 11; i > month - 1; i--) { d += years[i]; } d = d + years[month - 1] - date; return d; } int main() { int year1, year2, month1, month2, date1, date2; int d = 0, i, m = 0; int x1, x2;//记录两个日期分别到年初和年底的天数 int years[12] = { 31,28,31,30,31,30,31,31,30,31,30,31 }; cin >> year1 >> month1 >> date1 >> year2 >> month2 >> date2; if (year1 == year2)//大前提,同年时 { if (lapeyear(year1))years[1] = 29; if (month1 == month2)d = date1 > date2 ? date1 - date2 : d = date2 - date1;//同年同月 if (month1 != month2)//同年不同月 { //计算方法为求出两月之前的天数,然后求前一个月剩余的天数和后一个月已经开始的天数 if (month1 < month2) { { for (i = month1; i < month2 - 1; i++) { m += years[i]; } } d = years[month1 - 1] - date1; d += m + date2; } else { for (i = month2; i > month1 - 1; i++) { m += years[i]; } d = years[month2 - 1] - date2; d += m + date1; } } } else//求不同年的任意日期的天数差 { if (year1 > year2) { x1 = months1(year2, month2, date2);//x1为到年底的日差,x2为到年初的日差 x2 = months2(year1, month1, date1); d = years1(year2, year1); d += x1 + x2; } else { x2 = months2(year2, month2, date2); x1 = months1(year1, month1, date1); d = years1(year1, year2); d += x1 + x2; }

      }
      cout << d;
      return 0;
      

      }

      • -1
        @ 2023-1-30 19:32:25
        /*********************************
        备注:
        *********************************/
        #include<map>
        #include<list>
        #include<stack>
        #include<queue>
        #include<cmath>
        #include<queue>
        #include<stack>
        #include<deque>
        #include<math.h>
        #include<cstdio>
        #include<string>
        #include<vector>
        #include<cstring>
        #include<fstream>
        #include<stdio.h>
        #include<sstream>
        #include<iomanip>
        #include<iostream>
        #include<string.h>
        #include<algorithm>
        #include<bits/stdc++.h>
        using namespace std;
        #define in int
        #define ch char
        #define lo long
        #define fl float
        #define sh short
        #define db double
        #define str string
        #define ll long long
        #define ld long double
        #define lli long long int
        const int N =1e5+10;
        const int INF =0x3f3f3f3f;
        int lapeyear(int year2)//闰年判断函数
        {
        	if ((year2 % 400 == 0) || (year2 % 4 == 0 && year2 % 100 != 0))
        		return 1;
        	else return 0;
        }
        int years1(int year1, int year2)//计算两年间的天数
        {
        	int d = 0, i, r = 0, z = 0;
        	if (year1 < year2)
        	{
        		for (i = year1 + 1; i < year2; i++)
        		{
        			if (lapeyear(i))r++;//两年之间有多少个闰月
        		}
        		d = (year2 - year1 - 1) * 365 + r;
        	}
        	else
        	{
        		for (i = year2 + 1; i < year1; i++)
        		{
        			if (lapeyear(i))r++;//两年之间有多少个闰月
        		}
        		d = (year1 - year2 - 1) * 365 + r;
        	}
        	return d;
        }
        int months2(int year, int month, int date)//计算到年初日差的函数
        {
        	int i, d = 0;
        	int years[12] = { 31,28,31,30,31,30,31,31,30,31,30,31 };
        	if (lapeyear(year))years[1] = 29;
        	for (i = 0; i < month - 1; i++)
        	{
        		d += years[i];
        	}
        	d += date;
        	return d;
        }
        int months1(int year, int month, int date)//计算到年底日差的函数
        {
        	int i, d = 0;
        	int years[12] = { 31,28,31,30,31,30,31,31,30,31,30,31 };
        	if (lapeyear(year))years[1] = 29;
        	for (i = 11; i > month - 1; i--)
        	{
        		d += years[i];
        	}
        	d = d + years[month - 1] - date;
        	return d;
        }
        int main()
        {
        	int year1, year2, month1, month2, date1, date2;
        	int d = 0, i, m = 0;
        	int x1, x2;//记录两个日期分别到年初和年底的天数
        	int years[12] = { 31,28,31,30,31,30,31,31,30,31,30,31 };
        	cin >> year1 >> month1 >> date1 >> year2 >> month2 >> date2;
        	if (year1 == year2)//大前提,同年时
        	{
        		if (lapeyear(year1))years[1] = 29;
        		if (month1 == month2)d = date1 > date2 ? date1 - date2 : d = date2 - date1;//同年同月
        		if (month1 != month2)//同年不同月
        		{
        			//计算方法为求出两月之前的天数,然后求前一个月剩余的天数和后一个月已经开始的天数
        			if (month1 < month2)
        			{
        				{
        					for (i = month1; i < month2 - 1; i++)
        					{
        						m += years[i];
        					}
        				}
        				d = years[month1 - 1] - date1;
        				d += m + date2;
        			}
        			else
        			{
        					for (i = month2; i > month1 - 1; i++)
        					{
        						m += years[i];
        		            }
        				d = years[month2 - 1] - date2;
        				d += m + date1;
        			}
        		}
        	}
        	else//求不同年的任意日期的天数差
        	{
        		if (year1 > year2)
        		{
        			x1 = months1(year2, month2, date2);//x1为到年底的日差,x2为到年初的日差
        			x2 = months2(year1, month1, date1);
        			d = years1(year2, year1);
        			d += x1 + x2;
        		}
        		else
        		{
        			x2 = months2(year2, month2, date2);
        			x1 = months1(year1, month1, date1);
        			d = years1(year1, year2);
        			d += x1 + x2;
        		}
        
        	}
        	cout << d;
        	return 0;
        }
        
        • @ 2023-2-4 22:07:20

          /********************************* 备注: *********************************/ #include #include #include #include #include #include #include #include #include<math.h> #include #include #include #include #include #include<stdio.h> #include #include #include #include<string.h> #include #include<bits/stdc++.h> using namespace std; #define in int #define ch char #define lo long #define fl float #define sh short #define db double #define str string #define ll long long #define ld long double #define lli long long int const int N =1e5+10; const int INF =0x3f3f3f3f; int lapeyear(int year2){ if ((year2 % 400 == 0) || (year2 % 4 == 0 && year2 % 100 != 0)) return 1; else return 0; } int years1(int year1, int year2){ int d = 0, i, r = 0, z = 0; if (year1 < year2){ for (i = year1 + 1; i < year2; i++){ if (lapeyear(i))r++; } d = (year2 - year1 - 1) * 365 + r; }else{ for (i = year2 + 1; i < year1; i++){ if (lapeyear(i))r++; } d = (year1 - year2 - 1) * 365 + r; } return d; } int months2(int year, int month, int date){ int i, d = 0; int years[12] = { 31,28,31,30,31,30,31,31,30,31,30,31 }; if (lapeyear(year))years[1] = 29; for (i = 0; i < month - 1; i++){ d += years[i]; } d += date; return d; } int months1(int year, int month, int date){ int i, d = 0; int years[12] = { 31,28,31,30,31,30,31,31,30,31,30,31 }; if (lapeyear(year))years[1] = 29; for (i = 11; i > month - 1; i--) { d += years[i]; } d = d + years[month - 1] - date; return d; } int main() { int year1, year2, month1, month2, date1, date2; int d = 0, i, m = 0; int x1, x2; int years[12] = { 31,28,31,30,31,30,31,31,30,31,30,31 }; cin >> year1 >> month1 >> date1 >> year2 >> month2 >> date2; if (year1 == year2){ if (lapeyear(year1))years[1] = 29; if (month1 == month2)d = date1 > date2 ? date1 - date2 : d = date2 - date1; if (month1 != month2){ if (month1 < month2){ { for (i = month1; i < month2 - 1; i++){ m += years[i]; } } d = years[month1 - 1] - date1; d += m + date2; }else{ for (i = month2; i > month1 - 1; i++){ m += years[i]; } d = years[month2 - 1] - date2; d += m + date1; } } }else{ if (year1 > year2){ x1 = months1(year2, month2, date2); x2 = months2(year1, month1, date1); d = years1(year2, year1); d += x1 + x2; }else{ x2 = months2(year2, month2, date2); x1 = months1(year1, month1, date1); d = years1(year1, year2); d += x1 + x2; }

          }
          cout << d;
          return 0;
          

          }

      • -2
        @ 2024-12-20 19:57:36

        菜就多练

        #include<bits/stdc++.h>
        using namespace std;
        int sy,sm,sd,ey,em,ed,ans,m[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
        int main()
        {
        	cin>>sy>>sm>>sd>>ey>>em>>ed;
        	while(sy!=ey||sm!=em||sd!=ed){
        	ans++;
        	sd++;
        	if(sy%4==0&&sy%100!=0||sy%400==0)m[2] = 29;
        	else m[2] = 28;
        	if(sd>m[sm]){
        	sd = 1;
        	sm++;
        		}
        	if(sm>12){
        	sm = 1;
        	sy++;
        		}
        	}
        	cout<<ans;
        	return 0;
        }
        
        • 1

        信息

        ID
        917
        时间
        1000ms
        内存
        128MiB
        难度
        3
        标签
        递交数
        194
        已通过
        100
        上传者