• 程序员面试100题精选(8)


    昨天晚上整理了一个题目,是计算1+2+3+4...+100,当时使用的是递归的方法进行计算,今天上午来实验室之后看面试100题,发现其中的第八题也是一道这样的题目,但是他却有很多的限制条件,不能使用乘除法,for,while,if,else,switch,case等关键字以及条件判断语句(A?B:C)。

     
    分析:第一次遇到这种题目,没有思路,在看到了原文作者的提示之后,想到使用类来做。大体梳理一下:
     
        定义一个class,为其分配一个静态成员,因为类的静态成员是属于类本身所有,程序运行时分配的是内存中静态存储区的空间,并不属于任何的对象,因此当类的一个对象被声明或者删除时静态成员不会重新生成一个新的实例或者被直接的删除。在类才构造函数中定义对静态成员的操作,所以可以直接的定义N个该类的对象,就可以直接完成相应的操作,摘录代码,但是我没有做任何的修改,属于原文作者所有:
     1 #include <iostream>
    2 using namespace std;
    3 class Temp
    4 {
    5 public:
    6 Temp() {++N;sum+=N;}
    7 static void Reset() { N=0; sum=0;}
    8 static int GetSum() {return sum;}
    9 private:
    10 static int N;
    11 static int sum;
    12 };
    13 int Temp::N=0;
    14 int Temp::sum=0;
    15 void main()
    16 {
    17 Temp::Reset();
    18 int n;
    19 scanf("%d",&n);
    20 Temp *a=new Temp[n];
    21 delete []a;
    22 a=0;
    23 printf("%d",Temp::GetSum());
    24 }
  • 相关阅读:
    20200721训练记录
    20200717训练记录
    打家劫舍III(力扣第337题)
    HBase API的删除数据操作的分析
    相交链表(第160题)
    删除排序链表中的重复元素(第83题)
    合并两个有序链表(力扣第21题)
    删除链表的倒数第N个节点(第19题)
    HBase的架构原理
    回文链表、链表求和(234、445)
  • 原文地址:https://www.cnblogs.com/wdw828/p/2337768.html
Copyright © 2020-2023  润新知