牛客 JZ64.求1+2+3+…+n C++做法
思路🧐:
本篇主要用于说明C++中static成员和内部类的用法。
利用static对象公有的特性,创建两个static的成员变量,一个接收1到n,一个接收总和。且我们将专门为一个类服务的类创建为内部类,内部类是外部类友元,可以自由访问外部类数据。
代码🔎:
class Solution { public: class Sum { public: Sum() { num += i; //加起来的和 i++; //n为多少i就为多少 } }; int Sum_Solution(int n) { Sum a[n]; //创建对象必调用构造函数(某些编译器不支持变长数组) return num; } private: static int i; static int num; }; int Solution::num = 0; //static成员内部声明外部定义 int Solution::i = 1;