因为这个题是我在牛客上面刷到的所以直接用的牛客网的接口这个题上我算遇见的坑我都注释在代码中。
用C++解决的思路:就是创建个含有n个类的数组,这样就可以调用n次构造函数而每个构造函数里面你都要进行如下
sum(){
_sum+=_i;
_i++;
}
};
这样就可以完成了
题目描述
求1+2+3+…+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)
代码:
class Solution {
public:
class sum{//坑二:必须在类内再定义一个类,如果不定义的话就会出现多调用一次的问题
public:
sum(){
_sum+=_i;
_i++;
}
};
int Sum_Solution(int n) {
_i=1;//坑三:必须给_i和_sum初始化因为这样才能保证可以多次输入而结果是你所预想的那样
_sum=0;
sum arr[n];
return _sum;
}
private:
static int _i;// 坑一 .要定义为静态常量,不然每次你调用时sum 和i的值不会保存,static修饰的变量是所有类内成员共享,这样就完美解决不能保存的问题,还有static成员必须在类外定义。
static int _sum;
};
int Solution::_i=1;
int Solution::_sum=0;