zoukankan      html  css  js  c++  java
  • IT公司100题-12-求1+2+…+n

    问题描述:

    求1+2+…+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字以及条件判断语句(A?B:C)。
     
    分析:
    利用类的静态变量实现:
    new一含有n个这种类的数组,那么该类的构造函数将会被调用n次。
     
    代码实现:
     1 // 12.cc
     2 #include <iostream>
     3 using namespace std;
     4 
     5 class Object {
     6 public:
     7     Object() {
     8         ++N;
     9         Sum += N;
    10     }
    11     static void reset() { N = 0; Sum = 0; }
    12     static int get_sum() { return Sum; }
    13 
    14 private:
    15     static int N;
    16     static int Sum;
    17 };
    18 
    19 int Object::N = 0;
    20 int Object::Sum = 0;
    21 
    22 int sum(int n) {
    23     Object::reset();
    24 
    25     Object* a = new Object[n];
    26 
    27     delete []a;
    28     a = 0;
    29 
    30     return Object::get_sum();
    31 }
    32 
    33 int main() {
    34     int n = 10;
    35     cout << "The sum is: " << sum(n) << endl;
    36     return 0;
    37 }
  • 相关阅读:
    CSS3 --- 盒子
    CSS3 --- 伪元素
    CSS3 --- 伪类结构
    CSS3 --- 选择器
    HTML5 --- 新增表单属性
    HTML5 --- 新增标签
    CSS --- 定位
    CSS---浮动造成的影响
    CSS---盒子模型
    CSS---样式属性
  • 原文地址:https://www.cnblogs.com/dracohan/p/3901558.html
Copyright © 2011-2022 走看看