牛客网---不能使用乘除等条件,求1+2+3+...+n
程序员文章站
2024-03-15 14:53:48
...
题目:求1+2+3+…+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)
解:
1.创建n次对象,调用n次构造函数
2.不能直接用数组创建n个对象(数组下标不能是变量),所以用new动态创建n个对象
3.类内定义两个static变量(目的是对所有变量共享),一个自加一个累加,最后返回累加的结果
4.每次计算前要清空上一次计算的结果
class Sum
{
public:
Sum()
{
_count++;
_sum += _count;
}
static int GetSum()
{
return _sum;
}
static void RESSum()
{
_count = 0;
_sum = 0;
}
private:
static int _count;
static int _sum;
};
int Sum::_count = 0;//static修饰的变量要在类外初始化
int Sum::_sum = 0;
int main()
{
Sum::RESSum();//对之前计算结果清空
int n;
cin >> n;
Sum *p = new Sum[n];//数组下标不能是变量
cout << Sum::GetSum() << endl;
system("pause");
return 0;
}
上一篇: Python实现用户注册登录功能