zoukankan      html  css  js  c++  java
  • 结题报告

    题目:看图

    思路:

    找规律,我们发现这个序列为10110101 10110101 10110101 ……

    按照找到的规律,用循环数组就行了。

    犯的错误:

    sum没清0。

    收获:

    变量累加之前要清0。

    代码:

     1 #include <iostream>
     2 using namespace std;
     3 const int ai[8]={1,1,0,1,1,0,1,0};//循环数组
     4 int main(){
     5     int q;
     6     cin >> q;
     7     for(int i=0;i<q;i++){
     8         long long a,b;//注意类型,int装不下
     9         int sum=0;
    10         cin >> a >> b;
    11         int jm;
    12         for(int j=a;j<b;j++){
    13             jm=j%8;//循环数组实现:当j=8时,jm=0,只要把数据按顺序放在下标1、2、3、4、5、6、7、0处就可以了
    14             sum+=ai[jm];//这是优化,普通做法是if(ai[jm]==1)sum++,因为ai[jm]等于1是可以把sum加上ai[jm],反之也可以,所以直接sum+=ai[jm]就行了
    15         }
    16         cout << sum << "
    ";
    17     }
    18     return 0;
    19 }
    View Code

    还有一种递归做法,可以参考。

  • 相关阅读:
    .NET Tools...
    函数重载
    友元课后题
    怎么防止用户输入错误信息
    C#动态求圆的面积
    重载自增
    C++数学应用
    位运算符
    MSDN放出了VS2010简体中文正式版(附下载地址)
    字符串复制
  • 原文地址:https://www.cnblogs.com/eason66-blog/p/P2705-openjudge.html
Copyright © 2011-2022 走看看