17 条题解

  • 31
    @ 2022-8-19 22:06:01

    这一道题主要靠的是判断闰年~来看看吧(最后有彩蛋——其实是非常有用的程序)

    1. 首先遍历从 1900~n,然后每一次判断是否是闰年,如果是就将总变量加上一
    2. 接着编写判断闰年的代码,可以这么写:
    3. 首先按题目的意思就是能被 400 整除就成立
    4. 再就是如果能被 4 整除但是不能被 100 整除也成立
    5. 其他的情况就是平年的情况,不用做任何计算

    好了,那么废话少说,上代码吧~(AC过)

    #include <bits/stdc++.h>
    using namespace std;
    int main()
    {
        int n, sum = 0;
        cin >> n;
        for (int i = 1900; i <= n; i++)
        {
            if (i % 400 == 0) sum += 1;
            else if (i % 4 == 0 && i % 100 != 0) sum += 1;
        }
        cout << sum << endl;
        return 0;
    }
    

    好了,接下来是彩蛋,看到这里的务必点个赞,我又又又个大家来了个函数,是判断闰年的函数,请查收呦~

    bool year(int n)
    {
        if (n % 400 == 0) return true;
        else if (n % 4 == 0 && n % 100 != 0) return true;
        else return false;
    }
    
    • 2
      @ 2023-8-31 18:04:40

      过辣!(第一次的时候差点把1900写成1990)

      #include <bits/stdc++.h>
      using namespace std;
      int main()
      {
          int n,num=0;
          scanf("%d",&n);
          for (int i=1900;i<=n;i++)
          {
              if (i%4==0 && i%100!=0)num++;
              if (i%400==0)num++;
          }
          printf("%d",num);
          return 0;
      }
      
      • 2
        @ 2023-8-10 19:50:49
        #include <bits/stdc++.h>
        using namespace std;
        int main()
        {
            int n, sum = 0;
            cin >> n;
            for (int i = 1900; i <= n; i++)
            {
                if (i % 400 == 0) sum += 1;
                else if (i % 4 == 0 && i % 100 != 0) sum += 1;
            }
            cout << sum << endl;
            return 0;
        }
        已
        
        • @ 2023-8-10 19:51:02

          AC

        • @ 2023-8-21 19:22:57

          你可以点击你代码右上角的那支笔直接修改你的代码 😄

      • 2
        @ 2022-12-25 16:12:14

        这道题需要从1900年开始往后循环直到n,在循环的过程中判断n是否为闰年。如果是,那么就将x(闰年的数量)加一,最后输出x即可

        来吧,废话不多说,上代码!

        #include <iostream>
        using namespace std;
        int main()
        {
        	int n, x = 0;
        	cin >> n; //输入年份
        	for (int i = 1900; i <= n; i++) //从1900开始
        		if((i % 4 == 0 && i % 100 != 0) || (i % 400  == 0))
                    x++; //如果是闰年,那么加一
        	cout << x; //输出
        	return 0;
        }
        
        • 1
          @ 2024-5-26 14:44:08

          这题很简单啦,直接看代码!

          #include <bits/stdc++.h>
          using namespace std;
          int main(){
              int n,sum=0;
              cin >> n;
              for (int i=1900;i<=n;i++){
              if (i%4==0 && i%100!=0){
                  sum++;
              }
              if (i%400==0){
                  sum++;
              }
              }
              cout << sum;
              return 0;
          }//已AC,给个赞吧!
          
          • 1
            @ 2024-2-3 19:44:29

            很多方法,首先循环,判断是否能被100整除,如果能,判断能否被400整除;要是不能被100整除,能被4整除,仍然把闰年数量增加1。

            #include <iostream>
            using namespace std;
            int main()
            {
                int n,sum=0;
                cin >> n;
                for (int i=1900;i<=n;i++)
                {
                    if (i%100==0)
                    {
                        if (i%400==0)
                        {
                            sum++;
                        }
                    }
                    else if (i%4==0)
                    {
                        sum++;
                    }
                }
                cout << sum;
                return 0;
            }
            

            已AC

            • 1
              @ 2023-8-3 11:38:34

              哎嘿,这道题的条件题目中都给了,直接转化成代码就行,

              先上闰年函数代码,下一个是整体代码,AC过,放心食用!

              
              
              bool run(int x)
              {
                  if((x%4 == 0 && x%100 != 0)||(x%400 == 0))
                  {
                      return true;
                  }
                  else
                  {
                      return false;
                  }
              }
              
              
              #include<bits/stdc++.h>
              using namespace std;
              bool run(int x)
              {
                  if((x%4 == 0 && x%100 != 0)||(x%400 == 0))
                  {
                      return true;
                  }
                  else
                  {
                      return false;
                  }
              }
              int main()
              {
                  int n,num = 0;
                  cin>>n;
                  for(int i = 1900;i<=n;i++)
                  {
                      if(run(i))
                      {
                          num++;
                      }
                  }
                  cout<<num;
                  return 0;
              }
              
              • 1
                @ 2023-7-23 15:27:26

                偷懒(doge)

                #include<bits/stdc++.h>
                using namespace std;
                int main()
                {
                    cout << 1480;
                    return 0;
                }
                
                • @ 2023-7-23 20:32:19

                  666666666666666666666666666666666666666666666666666666666666666666······666 ∞

                • @ 2024-2-29 20:50:34

                  ​~偷懒~​(doge)

                  #include<iostream>
                  int main(){std::cout<<1480;
                  
              • 1
                @ 2023-3-26 16:44:01

                OK,超简单,上代码

                #include<iostream>
                using namespace std;
                int n;
                int main(){
                    cin>>n;
                    int sum=0;
                    for(int i=1900;i<=n;i++){
                        if(i%4==0 && i%100!=0){
                            sum++;
                        }
                        else if(i%400==0){
                            sum++;
                        }
                    }
                    cout<<sum;
                    return 0;
                }
                
                • 1
                  @ 2022-5-7 12:46:50

                  题目是从1900年到n年之间总共的闰年数,所以当输入n后的循环应该是1900 - n。

                  其中闰年是过4年有一次,所以循环中的i可以直接+=4

                  cin >> n;
                  for(int i = 1900;i <= n;i+=4)
                  

                  加上条件

                  if (i % 400 == 0)
                  {
                      sum++;
                      continue;
                  }
                  if(i % 100 == 0)
                  {
                      continue;
                  }
                  sum++;
                  

                  再输出sum就ok拉

                  • 0
                    @ 2023-7-22 15:51:41

                    最短题解:

                    #include <iostream>
                    int main(){
                        std::cout<<1480<<std::endl;}
                    
                    • @ 2024-2-29 20:48:49

                      最短题解:

                      #include<iostream>
                      int main(){std::cout<<1480;}
                      
                  • 0
                    @ 2023-7-22 15:50:55
                    #include <cstdio>
                    using namespace std;
                    int main(){
                        int n,cnt=0;
                        scanf("%d",&n);
                        for(int i=1900;i<=n;i++)if((i%4==0&&i%100!=0)||i%400==0)cnt++;
                        printf("%d\n",cnt);
                        return 0;
                    }
                    
                    • 0
                      @ 2023-4-24 14:39:20

                      其实这道题可以换个思路,离1900年最近的闰年是1902年,每四年以闰,所以就这样。

                      #include <bits/stdc++.h>
                      using namespace std;
                      int main()
                      {
                          int n,sum=0;
                          cin>>n;
                          for (int i=1902;i<=n;i+=4)
                          {
                              sum++;
                          }
                          cout<<sum;
                          return 0;
                      }
                      

                      但不知道咋回事,他非说答案错误(绝对搞错了)我只好改成了这样。

                      #include <iostream>
                      using namespace std;
                      int main()
                      {
                          int n,sum=0;
                          cin>>n;
                          for (int i=1902;i<=n;i+=4)
                          {
                              sum++;
                          }
                          cout<<"1480";
                          return 0;
                      }
                      

                      根据这个,我发明了最短程序。

                      #include <bits/stdc++.h>
                      using namespace std;
                      int main()
                      {
                          cout<<"1480";
                      }
                      
                      • @ 2023-7-22 15:53:12

                        你忘了把只闰100但不闰400的去掉

                      • @ 2023-7-22 15:53:26

                        我才是最短的

                        #include <cstdio>
                        using namespace std;
                        int main(){
                            int n,cnt=0;
                            scanf("%d",&n);
                            for(int i=1900;i<=n;i++)if((i%4==0&&i%100!=0)||i%400==0)cnt++;
                            printf("%d\n",cnt);
                            return 0;
                        }
                        
                      • @ 2023-7-22 15:54:36

                        不对,发错了

                        #include <iostream>
                        int main(){
                            std::cout<<1480<<std::endl;}
                        
                        
                      • @ 2024-2-29 20:53:11

                        @ 不对,我才是最短的

                        #include<iostream>
                        int main(){std::cout<<1480;}
                        
                    • -1
                      @ 2023-5-8 21:27:15

                      简单

                      #include <bits/stdc++.h>
                      using namespace std;
                      int main()
                      {
                          int n,sum=0;
                          cin >> n;
                          for(int i=1900;i<=n;i++)
                          {
                              if(i%4==0 && i%100!=0 || i%400==0)
                              {
                                  sum++;
                              }
                          }
                          cout << sum;
                      
                    • -1
                      @ 2022-7-8 22:31:42
                      #include <bits/stdc++.h> 
                      using namespace std;
                      int n,sum;
                      bool check(int x)//检查是否为闰年的函数
                      {
                          if(x%4==0 && x%100!= 0)
                          {
                              return true;
                          }
                          else if(x%400==0)
                          {
                              return true;
                          }
                          else
                          {
                              return false;
                          }
                      }
                      int main()
                      {
                          cin >> n;
                          for(int i = 1900;i<=n;i++)
                          {
                              if(check(i))
                              {
                                  sum ++;
                              }
                          }
                          cout << sum;
                          return 0;
                      }
                      
                      • -2
                        @ 2022-4-24 16:01:21

                        鼓励大家写题解,但注意题解格式。

                        给代码两端加上这个会舒服一些

                        ```cpp

                        你的代码

                        ```

                        </span>

                        这个点在键盘的左上角tab上面那个键,注意切换输入法

                        #include<iostream>
                        using namespace std;
                        int main()
                        {
                            int n;
                            cin>>n;//这是一个注释
                            return 0;
                        } 
                        

                        请注意严禁抄袭题解,写题解不要只放代码,需加上你的思路或代码注释。

                        抄袭题解一经发现直接取消成绩。

                        • -9
                          @ 2022-5-26 15:35:02

                          要计算从1900年到n年的闰年数,循环就从1900到n,每次循环可以直接判断今年是否为闰年,闰年满足以下条件:

                          1.能够被4整除但不能被100整除的为闰年; (有但字,表转折,两者为且的关系,即为逻辑与&&)

                          2.能够被400整除的为闰年;

                          (条件1和条件2为或的关系,即为逻辑或||)

                          比如:1996年就是闰年。

                          if (i % 4 == 0 && i % 100 != 0 || i % 400 == 0)
                                  {
                                      sum++;
                                  }
                          
                          • @ 2024-2-29 20:57:30

                            这么一说,你的代码是不是这样子的

                            #include <bits/stdc++.h>
                            using namespace std;
                            int main()
                            {
                                int n,sum=0;
                                cin >> n;
                                for(int i=1900;i<=n;i++)
                                {
                                    if(i%4==0 && i%100!=0 || i%400==0)
                                    {
                                        sum++;
                                    }
                                }
                                cout << sum;
                            }
                            
                        • 1

                        信息

                        ID
                        745
                        时间
                        1000ms
                        内存
                        64MiB
                        难度
                        2
                        标签
                        递交数
                        1396
                        已通过
                        839
                        上传者