从1到n的连续整数,你能数出多少个?

2026-04-12 03:052阅读0评论SEO资讯
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计582个文字,预计阅读时间需要3分钟。

从1到n的连续整数,你能数出多少个?

题目:求和问题:1+2+3+...+n要求:不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。数据范围:0 ≤ n ≤ 200进阶:空间复杂度 O(1),时间复杂度 O(n)。

实现思路:

1.使用一个变量累加求和。

2.从1开始循环累加到n。

3.每次循环将当前数加到累加变量上。

4.循环结束后,累加变量即为所求的和。

代码实现:

pythondef sum_of_n(n): total=0 for i in range(1, n + 1): total +=i return total

示例n=100result=sum_of_n(n)print(result)

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

题目:

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

数据范围: 0<n≤200 进阶: 空间复杂度 O(1) ,时间复杂度O(n)

示例1:

输入:5 返回值:15

示例2:

输入:1 返回值:1

思路一:

根据我们刚学的内部类的方法进行求解,通过调用n次构造函数来计算和,从_i = 1开始计算,每调用一次构造函数_i++一次,一共调用n次构造函数,也就计算出1+2+……+n。

代码一:使用内部类和静态成员变量的方法

#include <unistd.h> class Solution { public: class Sum{ public: Sum() { _sum += _i; _i++; } }; int Sum_Solution(int n) { Sum a[n]; return _sum; } private: static int _i; static int _sum; }; int Solution::_i = 1; int Solution::_sum = 0;

代码二:使用静态成员函数和静态成员变量

class Sum{ public: //构造函数 Sum() { _sum += _i; _i++; } //对静态成员变量初始化 static void Init() { _i = 1; _sum = 0; } //获取成员变量的值 static int GetSum() { return _sum; } private: static int _i; static int _sum; }; class Solution { public: int Sum_Solution(int n) { Sum::Init(); //Sum a[n];//变长数组 Sum* p = new Sum[n]; return Sum::GetSum(); } }; //静态成员变量的定义 int Sum::_i = 1; int Sum::_sum = 0;

时间复杂度:O(1)

空间复杂度:O(N)

从1到n的连续整数,你能数出多少个?

标签:123n题目

本文共计582个文字,预计阅读时间需要3分钟。

从1到n的连续整数,你能数出多少个?

题目:求和问题:1+2+3+...+n要求:不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。数据范围:0 ≤ n ≤ 200进阶:空间复杂度 O(1),时间复杂度 O(n)。

实现思路:

1.使用一个变量累加求和。

2.从1开始循环累加到n。

3.每次循环将当前数加到累加变量上。

4.循环结束后,累加变量即为所求的和。

代码实现:

pythondef sum_of_n(n): total=0 for i in range(1, n + 1): total +=i return total

示例n=100result=sum_of_n(n)print(result)

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

题目:

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

数据范围: 0<n≤200 进阶: 空间复杂度 O(1) ,时间复杂度O(n)

示例1:

输入:5 返回值:15

示例2:

输入:1 返回值:1

思路一:

根据我们刚学的内部类的方法进行求解,通过调用n次构造函数来计算和,从_i = 1开始计算,每调用一次构造函数_i++一次,一共调用n次构造函数,也就计算出1+2+……+n。

代码一:使用内部类和静态成员变量的方法

#include <unistd.h> class Solution { public: class Sum{ public: Sum() { _sum += _i; _i++; } }; int Sum_Solution(int n) { Sum a[n]; return _sum; } private: static int _i; static int _sum; }; int Solution::_i = 1; int Solution::_sum = 0;

代码二:使用静态成员函数和静态成员变量

class Sum{ public: //构造函数 Sum() { _sum += _i; _i++; } //对静态成员变量初始化 static void Init() { _i = 1; _sum = 0; } //获取成员变量的值 static int GetSum() { return _sum; } private: static int _i; static int _sum; }; class Solution { public: int Sum_Solution(int n) { Sum::Init(); //Sum a[n];//变长数组 Sum* p = new Sum[n]; return Sum::GetSum(); } }; //静态成员变量的定义 int Sum::_i = 1; int Sum::_sum = 0;

时间复杂度:O(1)

空间复杂度:O(N)

从1到n的连续整数,你能数出多少个?

标签:123n题目