C++ 求1+2+3+......+n__有限制(牛客网)

点击链接即可产看题目:求1+2+3+...+n_牛客题霸_牛客网

一、题目

描述

求1+2+3+...+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。

数据范围: 0<n≤2000<n≤200

进阶: 空间复杂度 O(1)O(1) ,时间复杂度 O(n)O(n)

示例1

输入:

复制代码
5

返回值:

复制代码
15

示例2

输入:

复制代码
1

返回值:

复制代码
1

二、解题思路以及代码

利用构造函数,生成N个类的对象,就要调用N次构造函数,定义两个静态变量,一个村结果,一个存当前的累加值,

注意:在牛客网上面是支持变长数组的!!!!

复制代码
#include <type_traits>

class Solution 
{
    class Sum
    {
    public:
        Sum()
        {
            ret += i;
            i++;                    
        }
    };
public:
    int Sum_Solution(int n) 
    {
        Sum a[n];
        return ret;
    }
private:
    static int i;
    static int ret;
};

int Solution:: i = 1;
int Solution:: ret = 0;
相关推荐
Je1lyfish10 小时前
CMU15-445 (2025 Fall/2026 Spring) Project#3 - QueryExecution
linux·c语言·开发语言·数据结构·数据库·c++·算法
Brilliantwxx11 小时前
【C++】 vector(代码实现+坑点讲解)
开发语言·c++·笔记·算法
叼烟扛炮12 小时前
C++第三讲:类和对象(中)
开发语言·c++·类和对象
KuaCpp12 小时前
C++新特性学习
c++·学习
墨染千千秋12 小时前
C/C++ Keywords
c语言·c++
ximu_polaris12 小时前
设计模式(C++)-行为型模式-中介者模式
c++·设计模式·中介者模式
CSCN新手听安14 小时前
【Qt】Qt窗口(八)QFontDialog字体对话框,QInputDialog输入对话框的使用,小结
开发语言·c++·qt
tumu_C14 小时前
用std::function减缓C++模板代码膨胀和编译压力的一个场景
开发语言·c++
Hical6115 小时前
C++17 实战心得:那些真正改变我写代码方式的特性
c++
Hical6116 小时前
实测:C++20 协程 vs Go Gin vs Rust Actix,谁的 Web 性能更强?
c++