技术宅工作吧 关注:98贴子:1,582
  • 19回复贴,共1

分享让我受益匪浅的代码

只看楼主收藏回复

听说一楼要喂xx@mengyapeng1


来自Android客户端1楼2015-08-17 08:05回复
    1+2+3+..+100
    难度 0
    #include<iostream>
    using namespace std;
    int main()
    {
    int i, s = 0;
    // 第一种
    for (i = 0; i <= 100; i++)
    {
    s += i;
    }
    cout << s << endl;
    // 第二种
    s = i = 0;
    while (i < 100)
    {
    i++;
    s += i;
    }
    cout << s << endl;
    // 第三种
    s = i = 0;
    do
    {
    i++;
    s += i;
    }
    while (i < 100);
    cout << s << endl;
    // 第四种(不推荐)
    s = i = 0;
    st:
    i++;
    s += i;
    if (i < 100)
    goto st;
    cout << s << endl;
    return 0;
    }


    来自Android客户端2楼2015-08-17 08:06
    回复
      阶乘连加
      难度1
      #include<iostream>
      using namespace std;
      int main(){
      int s=0, i=1, t, n;
      cout << "输入n ";
      cin >> n;
      for (t=1;t<=n;t++){
      i *= t;
      s += i;
      }
      cout << "1!+2!+3!+...+" << n
      << "! = " << s << endl;
      return 0;
      }


      来自Android客户端3楼2015-08-17 08:09
      回复
        闰年平年
        难度1
        #include<iostream>
        using namespace std;
        int main(){
        int year;
        cout<<"input a year:";
        cin>>year;
        if((year%4==0 && year%100!=0) || year%400==0) cout<<"yes\n";
        else cout<<"no\n";
        return 0;
        }


        来自Android客户端4楼2015-08-17 08:10
        回复
          斐波那契数列
          难度2
          #include <iostream>
          using namespace std;
          int f(int x){
          if (x==1 or x==2) return 1;
          else return f(x-1)+f(x-2);
          }
          int main(){
          cout << f(30);
          return 0;
          }


          来自Android客户端5楼2015-08-17 08:11
          回复
            冒泡排序
            难度2
            #include<iostream>
            using namespace std;
            int main()
            {
            int o, i;
            int t;// 容器
            int work[10] = { 0, 55, 65, 68, 25, 38, 67, 51, 62, 98 };
            for (o = 0; o <= 8; o++)
            {
            for (i = o + 1; i <= 9; i++)
            {
            if (work[o] < work[i])
            {
            t = work[o];
            work[o] = work[i];
            work[i] = t;
            }
            }
            }
            for (i = 0; i <= 9; i++)
            {
            cout << work[i] << " ";
            }
            return 0;
            }


            来自Android客户端7楼2015-08-17 08:13
            回复
              冰雹猜想
              难度2
              #include<iostream>
              #include<cstdlib>
              using namespace std;
              int main()
              {
              while (1){
              unsigned long int a;
              cin >> a;
              while (1){
              if ((a % 2) == 0)
              a /= 2;
              else
              a = a*3+1;
              cout << a << endl;
              if (a==1)
              break;
              }
              cout << "end" << endl;
              }
              return 0;
              }


              来自Android客户端8楼2015-08-17 08:17
              回复
                支持运算符优先级的四则运算
                难度3
                #include<iostream>
                #include<vector>
                using namespace std;
                int main(){
                vector<double> add;
                double i;
                char f='+';
                bool first=true;
                while (1){
                if (!first)
                cin >> f;
                if (f!='=')
                cin >> i;
                else
                break;
                switch (f){
                case '+':
                add.push_back(i);
                break;
                case '-':
                add.push_back(-i);
                break;
                case '*':
                add[add.size()-1]*=i;
                break;
                case '/':
                add[add.size()-1]/=i;
                break;
                }
                first=false;
                }
                i = 0;
                for (int t=0; t<add.size(); t++)
                i += add[t];
                cout << i;
                return 0;
                }


                来自Android客户端9楼2015-08-17 08:19
                回复
                  奇数阶幻方
                  难度3
                  #include<iostream>
                  #include<iomanip>
                  using namespace std;
                  int main(){
                  int n;
                  cin >> n;
                  int a[n+1][n+1];
                  int i, j;
                  int t;
                  int k, l;
                  for (i=1;i<=n;i++)
                  for (j=1;j<=n;j++)
                  a[i][j]=0;
                  i=1;
                  j=n/2+1;
                  a[i][j]=1;
                  for (t=2;t<=n*n;t++){
                  k=i-1;
                  l=j+1;
                  if (k==0 && l>n){
                  k+=2;
                  l=j;
                  }
                  else if (k==0 && !(l>n))
                  k=n;
                  else if (k!=0&&l>n)
                  l=1;
                  else if (a[k][l]!=0){
                  k+=2;
                  l=j;
                  }
                  a[k][l]=t;
                  i=k;
                  j=l;
                  }
                  for (i=1;i<=n;i++){
                  for (j=1;j<=n;j++){
                  cout <<setw(4)<< a[i][j] << " ";
                  }
                  cout << endl;
                  }
                  return 0;
                  }


                  来自Android客户端10楼2015-08-17 08:20
                  回复
                    汉诺塔
                    难度4
                    #include <iostream>
                    using namespace std;
                    void move(int n,char a,char c,char b){
                    //a到c,用b柱过渡,n个盘
                    if (n==1){
                    cout << a << "->" << c << endl;
                    //如果只一个,直接到目的地
                    }
                    else{
                    //否则先将n-1一个移动到过渡上
                    /*
                    在这里,递归执行下去,直到到
                    达上面的递归边界,再返回
                    最终完成所有移动
                    */
                    move(n-1,a,b,c);
                    //输出这一步的路径
                    cout << a << "->" << c << endl;
                    //从过渡上过去目的地
                    move(n-1,b,c,a);
                    }
                    }
                    int main(){
                    int n;
                    cin >> n;
                    //输入盘总数
                    move(n,'a','c','b');
                    //把n个盘子从a移到c借助b过渡
                    return 0;
                    }


                    来自Android客户端11楼2015-08-17 08:21
                    回复
                      折半查找
                      难度4
                      #include <iostream>
                      #include <cmath>
                      using namespace std;
                      int a[100];
                      int i;
                      void init(){
                      cin >> i;
                      for (int j=1; j<=i; j++)
                      cin >> a[j];
                      }
                      int find (int x, int l, int r){
                      //cout << l << " " << r << endl;
                      if (l==r){
                      if (x == a[l])
                      return l;
                      else
                      return -1;
                      //找不到
                      }
                      int mid=(l+r)/2;
                      if (a[mid] == x)
                      return mid;
                      else if (a[mid] < x)
                      return find(x, mid+1, r);
                      else
                      return find(x, l, mid-1);
                      }
                      int main(){
                      init();
                      int k;
                      cin >> k;
                      cout << find(k,1,i);
                      return 0;
                      }


                      来自Android客户端12楼2015-08-17 08:24
                      回复
                        为什么喂我?


                        IP属地:北京来自Android客户端13楼2015-08-18 22:08
                        收起回复
                          第一,我看不懂,特别是cout,com,<<什么的
                          第二,当我看到冒泡二星的时候就已放弃继续看


                          IP属地:北京来自iPhone客户端14楼2015-08-20 00:59
                          收起回复