题解 | #求1+2+3+...+n#

求1+2+3+...+n

https://www.nowcoder.com/practice/7a0da8fc483247ff8800059e12d7caf1

class Sum
{
public:
    Sum()
    {
        sum += i;       //每一次调用都会和之前的相加起来,因为两个变量被static修饰了,
        ++i;
    }
    static void Init()
    {
        i = 1;
        sum = 0;
    }
    static int GetSum()
    {
        return sum;
    }
private:
    static int i;         //static修饰后,在静态去了,是属于整个类的了不是输入某一个对象
    static int sum;       //static修饰后,在静态去了,是属于整个类的了不是输入某一个对象
};

int Sum::i = 1;
int Sum::sum = 0;


class Solution {
public:
    int Sum_Solution(int n) {
        Sum::Init();                //为了保证每一组数据测完之后,值回到开始前
        Sum a[n];                    //数据有多少个,就调用多少次默认构造函数
        return Sum::GetSum();       //
    }
};

思路:主要是利用static特性和构造函数,定义一个Sum类出来,在里面完成1~200的求和,初始化(还原),返回相加后的值等操作。

1.Sum中出来把i和sum都用static 修饰,然后i和sum就是属于整个类了,不是属于某一个对象,a[n]代表有多个数据,要多次调用 构造函数,就会使用上次构造函数的i和sum,不会还原成 i= 1,sum = 0;

2.Sum a[n]表示一组数据有多少个 如:a[5],就说明这一组数据有5个 //0,1, 2, 3, 4

3.Init函数是为了下一组数据做准准备,还原最开始的值i = 1, sum = 0;

全部评论

相关推荐

05-26 22:25
门头沟学院 Java
Java小肖:不会是想叫你过去把你打一顿吧,哈哈哈
点赞 评论 收藏
分享
06-20 19:40
中原工学院 Java
网络存储:十几天不会让你拉人办卡就结束了吧?
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-03 18:22
投了几百份简历,专业和方向完全对口,都已读不回。尝试改了一下学校,果然有奇效。
steelhead:这不是很正常嘛,BOSS好的是即便是你学院本可能都会和聊几句,牛客上学院本机会很少了
点赞 评论 收藏
分享
评论
2
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务