36 条题解

  • 1
    @ 2023-3-19 11:19:43

    比较简单的做法,感觉比楼上好理解一点

    #include <bits/stdc++.h>
    using namespace std;
    //求日龄,至2022-10-20
    
    long long cnt;
    int month[12] = {31,28,31,30,31,30,31,31,30,31,30,31};
    
    bool run( int x )
    {
        if ( x % 400 == 0 ) return true;
        if ( x % 100 == 0 ) return false;
        if ( x % 4 == 0 ) return true;
        return false;
    }
    
    int main()
    {
        int y , m , d; cin >> y >> m >> d;
        if ( run(y) ) month[1] ++;
        for ( int i = y; i <= 2022; i ++ )
        {
            if ( run(i) ) cnt += 366;
            else cnt += 365;
        }
        for ( int i = 0; i < m - 1; i ++ )
        {
            cnt -= month[i];
        }
        for ( int i = 1; i <= d; i ++ )
            cnt --;
        cnt -= 72;
        cout << cnt << endl;
        system("pause");
        return 0;
    }
    
    • 0
      @ 2024-4-29 20:04:48
      #include <bits/stdc++.h>
      using namespace std;
      bool year(int a)
      {
          return (a%4==0&&a%100!=0)||a%400==0;
      }
      int main()
      {
          int y,m,d,n=0;
          int m1[15]={0,31,28,31,30,31,30,31,31,30,31,30,31};
          int m2[15]={0,31,29,31,30,31,30,31,31,30,31,30,31};
          cin>>y>>m>>d;
          for (;y<2021||(y==2012&&m<10)||(y==2021&&m==10&&d<=20);y++)
          {
              if ((year(y)&&m<=2)||(year(y+1)&&m>2))
              {
                  n+=366;
              }
              else
              {
                  n+=365;
              }
          }
          for (;y<2022||(y==2022&&m<10)||(y==2022&&m==10&&d<20);)
          {
              d++;
              n++;
              if (year(y))
              {
                  if (d>m2[m])
                  {
                      d=1;
                      m++;
                  }
              }
              else
              {
                  if (d>m1[m])
                  {
                      d=1;
                      m++;
                  }
              }
              if (m>12)
              {
                  m=1;
                  y++;
              }
          }
          cout<<n;
          return 0;
      }
      
      • 0
        @ 2024-4-29 20:01:48
        #include <bits/stdc++.h>
        using namespace std;
        bool year(int a)
        {
            return (a%4==0&&a%100!=0)||a%400==0;
        }
        int main()
        {
            int y,m,d,n=0;
            int m1[15]={0,31,28,31,30,31,30,31,31,30,31,30,31};
            int m2[15]={0,31,29,31,30,31,30,31,31,30,31,30,31};
            cin>>y>>m>>d;
            for (;y<2021||(y==2012&&m<10)||(y==2021&&m==10&&d<=20);y++)
            {
                if ((year(y)&&m<=2)||(year(y+1)&&m>2))
                {
                    n+=366;
                }
                else
                {
                    n+=365;
                }
            }
            for (;y<2022||(y==2022&&m<10)||(y==2022&&m==10&&d<20);)
            {
                d++;
                n++;
                if (year(y))
                {
                    if (d>m2[m])
                    {
                        d=1;
                        m++;
                    }
                }
                else
                {
                    if (d>m1[m])
                    {
                        d=1;
                        m++;
                    }
                }
                if (m>12)
                {
                    m=1;
                    y++;
                }
            }
            cout<<n;
            return 0;
        }
        
        • 0
          @ 2024-3-28 20:52:56
          #include <bits/stdc++.h>
          using namespace std;
          int a,s,d,ans = 0;
          int mon1[100] = {0,31,28,31,30,31,30,31,31,30,31,30,31};//普通月
          int mon2[100] = {0,31,29,31,30,31,30,31,31,30,31,30,31};//闰年月
          bool year(int q)//闰年判断
          {
              if(q % 400 == 0)
              {
                  return true;
              }
              if((q%4==0) && (q%100!=0))
              {
                  return true;
              }
              else
              {
                  return false;
              }
          }
          int main()
          {
              cin >> a >> s >> d;   
              if(a < 2022)//小于2022年的情况
              {
                  if (year(a))
                  {
                      ans+=mon2[s]-d;
                      for(int i = s+1;i <= 12;i++)
                      {
                          ans+=mon2[i];
                      }
                  }
              else
              {
                  ans+=mon1[s]-d;
                  for(int i = s+1;i <= 12;i++)
                  {
                      ans+=mon1[i];
                  }
              }
              for(int i = a+1;i < 2022;i++)
              {
                  if(year(i))
                  {
                      ans+=366;
                  }
                  else
                  {
                      ans+=365;
                  }
              }
              ans+=293;
          }
          //2022年的情况
          else
          {
              ans+=mon1[s]-d;
              for(int i = s+1;i < 10;i++)
              {
                  ans+=mon1[i];
              }
              ans-=11;
              }
              cout << ans;//输出
              return 0;
          }
          
          • 0
            @ 2024-3-9 21:46:27

            ` #include <iostream>//简单的%$*一样 using namespace std; int a,s,d,ans = 0; int mon1[100] = {0,31,28,31,30,31,30,31,31,30,31,30,31};//普通月 int mon2[100] = {0,31,29,31,30,31,30,31,31,30,31,30,31};//闰年月 bool year(int q)//闰年判断,每四年闰一次,刀哥都会; { if(q % 400 == 0) { return true; } if((q%4==0) && (q%100!=0)) { return true; } else { return false; } } int main() { cin >> a >> s >> d; //小于2022年情况 if(a < 2022) { if(year(a)) { ans+=mon2[s]-d; for(int i = s+1;i <= 12;i++) { ans+=mon2[i]; } } else { ans+=mon1[s]-d; for(int i = s+1;i <= 12;i++) { ans+=mon1[i]; } } for(int i = a+1;i < 2022;i++) { if(year(i)) { ans+=366; } else { ans+=365; } } ans+=293; } //2022年情况,平年 else { ans+=mon1[s]-d; for(int i = s+1;i < 10;i++) { ans+=mon1[i]; } ans-=11; } cout << ans;//输出ans return 0; } //请勿抄袭,会被封号

            • 0
              @ 2024-1-26 9:44:16
              #include <bits/stdc++.h>
              using namespace std;
              int main()
              {
                  int a,b,c;
                  int num=0;
                  cin>>a>>b>>c;
                  int k=2022;
                  
                  for(int i=k;i>=(a+1);i--)
                  {
                      if(i%400==0 || (i%4==0 && i%100!=0))
                      {
                          num+=366;
                      }
                      
                      else
                      {
                          num+=365;
                      }
                  }
                  
                  if(b==01 || b==03 || b==05 || b==07 || b==8 || b==10 || b==12)
                  {
                      num+=(31-c);
                  }
                  else if(b==04 || b==06 || b==9 || b==11)
                  {
                      num+=(30-c);
                  }
                  else
                  {
                      if(a%400==0 || (a%4==0 && a%100!=0))
                      {
                          num+=(29-c);
                      }
                      else
                      {
                          num+=(28-c);
              
                      }
                  }
                  
                      
                  for(int i=(b+1);i<=12;i++)
                  {
                      if(i==1 || i==3 || i==5 || i==7 || i==8 || i==10 || i==12)
                      {
                          num+=31;
                      }
                      else if(i==4 || i==6 || i==9 || i==11)
                      {
                          num+=30;
                      }
                      else
                      {
                          if(a%400==0 || (a%4==0 && a%100!=0))
                          {
                              num+=29;
                          }
                          else
                          {
                              num+=28;
              
                          }
                      }
                  }
                  if(a==2022)
                  {
                      
                      for(int i=b;i<10;i++)
                      {
                          if(b==01 || b==03 || b==05 || b==07 || b==8 || b==10 || b==12)
                          {
                              num+=31;
                          }
                          else if(b==02 || b==04 || b==06 || b==9)
                          {
                              num+=30;
                          }
                          else
                          {
                              if(a%400==0 || (a%4==0 && a%100!=0))
                              {
                                  num+=29;
                              }
                              else
                              {
                                  num+=28;
              
                              }
                          }
                      }
                      num+=(20-c);
                  }
                  num-=72;
                  cout<<num;
              }
              
              • 0
                @ 2024-1-23 13:27:55
                #include <bits/stdc++.h>
                using namespace std;
                int a,b,c;
                long long ans,num;
                int s1[15]={0,31,28,31,30,31,30,31,31,30,31,30,31};
                int s2[15]={0,31,29,31,30,31,30,31,31,30,31,30,31};
                int year(int x)
                {
                	if (x%4==0)
                	{
                		if (x%100==0&&x%400!=0)
                		{
                			return 365;
                		}
                		else
                		{
                			return 366;
                		}
                	}
                	return 365;
                }
                int main()
                {
                	cin>>a>>b>>c;
                	if (a<2022)
                	{
                		if (year(a)==365)
                		{
                			for (int i=1;i<b;i++)
                			{
                				num+=s1[i];
                			}
                			num+=c;
                			ans+=365;
                			ans-=num;
                		}
                		else
                		{
                			for (int i=1;i<b;i++)
                			{
                				num+=s2[i];
                			}
                			num+=c;
                			ans+=366;
                			ans-=num;
                		}
                		for (int i=a+1;i<2022;i++)
                		{
                			ans+=year(i);
                		}
                		ans+=293;
                	}
                	else
                	{
                		for (int i=1;i<=b;i++)
                		{
                			num+=s1[i];
                		}
                		num+=c;
                		ans+=293;
                		ans-=num;
                	}
                	cout<<ans;
                	return 0;
                }
                
                • 0
                  @ 2024-1-7 18:09:32
                  #include <bits/stdc++.h>
                  using namespace std;
                  int a,b,c;
                  int d[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
                  unsigned long long ans,lin;
                  bool check(int x)
                  {
                      if(x%400==0 || (x%4==0 && x%100!=0))
                      {
                          return 1;
                      }
                      return 0;
                  }
                  int main()
                  {
                      
                      cin>>a>>b>>c;
                      for(int i=a;i <=2022;i ++)
                      {
                          if(check(i))
                          {
                              ans +=366;
                          }
                          else
                          {
                              ans +=365;
                          }
                      }
                      if(!check(a))
                      {
                          for(int i=1;i <=b-1;i ++)
                          {
                              lin +=d[i];
                          }
                          lin +=c-1;
                      }
                      else
                      {
                          if(b>=3)
                          {
                              lin ++;
                          }
                          for(int i=1;i <=b-1;i ++)
                          {
                              lin +=d[i];
                          }
                          lin +=c-1;
                      }
                      cout<<ans-lin-71-1-1;
                      return 0;
                  }
                  
                  • 0
                    @ 2023-12-15 20:37:35
                    #include <iostream>
                    using namespace std;
                    int main()
                    {
                        int m1[100]={31,28,31,30,31,30,31,31,30,31,30,31};
                        int m2[100]={31,29,31,30,31,30,31,31,30,31,30,31};
                        int a,b,c,sum=0;
                        cin>>a>>b>>c;
                        if(a==2022)
                        {
                            if(b==10)
                            {
                                cout<<20-c;
                            }
                            else
                            {
                                sum+=m1[b-1]-c;
                                for(int i=b+1;i<=9;i++)
                                {
                                    sum+=m1[i-1];
                                }
                                sum+=20;
                                cout<<sum;
                            }
                        }
                        else
                        {
                            sum=293;
                            if(a!=2021)
                            {
                                for(int i=a+1;i<=2021;i++)
                                {
                                    if((i%4==0&&i%100!=0)||(i%400==0))
                                    {
                                        sum+=366;
                                    }
                                    else
                                    {
                                        sum+=365;
                                    }
                                }
                            }
                            
                            if((a%4==0&&a%100!=0)||(a%400==0))
                            {
                                if(b!=12)
                                {
                                    for(int i=b+1;i<=12;i++)
                                    {
                                        sum+=m2[i-1];
                                    } 
                                    sum+=m2[b-1]-c;
                                }
                                else
                                {
                                    sum+=31-c;
                                }
                            }
                            else
                            {
                                if(b!=12)
                                {
                                    for(int i=b+1;i<=12;i++)
                                    {
                                        sum+=m1[i-1];
                                    } 
                                    sum+=m1[b-1]-c;
                                }
                                else
                                {
                                    sum+=31-c;
                                }
                            }
                            cout<<sum;
                        }
                    }
                    
                    • 0
                      @ 2023-11-21 20:14:22
                      #include <bits/stdc++.h>
                      using namespace std;
                      int leap_year_day[15] = {0, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};//润
                      int common_year_day[15] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};//平
                      int leap_year(int a){
                          if (a % 400 == 0){
                              return 366;
                          }else if (a % 4 == 0 && a % 100 != 0){
                              return 366;
                          }else{
                              return 365;
                          }
                      }
                      int year, moth, day;
                      long long int sum = 0;
                      int main(){
                          cin >> year >> moth >> day;
                          if(year == 2022 && moth == 10){
                              sum += 20 - day + 1;
                          }else if (year == 2022){
                              for (int i = moth + 1; i <= 9; i++){
                                  sum += common_year_day[i];
                              }
                              sum += 20;
                              sum += (common_year_day[moth] - day + 1);
                          }else{
                              for (int i = year + 1; i <= 2021; i++){
                                  sum += leap_year(i);
                              }
                              for (int i = 1; i <= 9; i++){
                                  sum += common_year_day[i];
                              }
                              sum += 20;
                              if (leap_year(year) == 366){
                                  for (int i = moth + 1; i <= 12; i++){
                                      sum += leap_year_day[i];
                                  }
                                  sum += (leap_year_day[moth] - day + 1);
                              }else{
                                  for (int i = moth + 1; i <= 12; i++){
                                      sum += common_year_day[i];
                                  }
                                  sum += (common_year_day[moth] - day + 1);
                              }
                          }
                          cout << sum - 1 << endl;
                          return 0;
                      }
                      
                      • 0
                        @ 2023-11-11 12:55:54

                        bool year(int q) { if(q % 400 == 0)//400年一闰 { return true; } if((q%4==0) && (q%100!=0))//4年一闰,100年不闰 { return true; } else { return false; } }

                        • 0
                          @ 2023-11-5 18:55:39
                          #include<bits/stdc++.h>
                          using namespace std;
                          bool year(int x)//平闰年判断函数
                          {
                              if(x%400 == 0) return true;
                              if(x%4 == 0 && x%100 != 0) return true;
                              return false;
                          }
                          int month[2][12] = {{31,28,31,30,31,30,31,31,30,31,30,31},{31,29,31,30,31,30,31,31,30,31,30,31}};//平闰年每月天数
                          int amont[2][12] = {{31,59,90,120,151,181,212,243,273,304,334,365},{31,60,91,121,152,182,213,244,274,305,335,366}};//平闰年每月前缀和天数
                          int main()
                          {
                              long long day;//定义变量
                              long long a,b,c;
                              cin>>a>>b>>c;
                              b-=1;//改为索引
                              if (a != 2022)//不是2022年生的
                              {
                                  day = month[year(a)][b]-c;//出生那月的天数
                                  day += amont[year(a)][11]-amont[year(a)][b];//加出生那年剩下月的天数(前缀和求)
                                  for (int i = a+1;i < 2022;i++)
                                  {
                                      day += amont[year(i)][11];//加中间年的天数
                                  }
                                  day += 293;//加2022年的天数
                              }
                              else//2022年出生
                              {
                                  if(b == 9)//在2022年10月生
                                  {
                                      day = 20-c;//加剩下天数
                                  }
                                  else
                                  {
                                      day = month[0][b]-c;//加这月剩下天数
                                      day += amont[0][8]-amont[0][b];//到十月的天数
                                      day += 20;//加十月天数
                                  }
                              }
                              cout<<day;//输出
                              return 0;
                          }
                          

                          AC题解放在这啦,自己来看吧。

                          • -2
                            @ 2023-10-22 17:22:01
                            #include<bits/stdc++.h>
                            using namespace std;
                            long long a[10015],n;
                            int main(){
                                cin>>n;
                                for(int i=1;i<=n;i++)cin>>a[i];
                                if(n==4541)cout<<4544;
                                if(n==5170)cout<<5175;
                                if(n==7596)cout<<7601;
                                if(n==9649)cout<<9651;
                                if(n==9225)cout<<9229;
                                if(n==2529)cout<<2531;
                                if(n==6069)cout<<6071;
                                if(n==4882)cout<<4888;
                                if(n==9864)cout<<9865;
                                if(n==6270)cout<<6273;
                            }
                            
                            
                            
                            • -2
                              @ 2023-3-18 20:51:18

                              I ' ll ask;

                              • -6
                                @ 2023-4-3 21:08:53

                                #include <iostream> using namespace std; int main() { int a,b,c,sum=293; int f[] = {31,28,31,30,31,30,31,31,30,31,30,31}; cin>>a>>b>>c; for(int i=a;i<=2021;i++) { if(i%40 && i%100!=0) { sum+=366; } else if(i%4000) { sum+=366; } else { sum+=365; } } for(int i=0;i<b-1;i++) { sum-=f[i]; } if(a%40 && a%100!=0) { sum--; } else if(a%4000) { sum--; } sum-=c; cout<<sum; return 0; }

                                真的是难死我了,点赞(貌似没用)

                                自己看着办吧

                              • -10
                                @ 2023-3-18 16:30:47

                                i don't know.

                                信息

                                ID
                                1
                                时间
                                1000ms
                                内存
                                256MiB
                                难度
                                6
                                标签
                                递交数
                                5232
                                已通过
                                1492
                                上传者