【10】求1+2+3.....+n

简介: 题目:输入一个n求1+2+3...+n,要求不能使用乘除法、for、while、if、else、switch、case以及条件判断语句方案:题目明确要求不能使用常规的解法,所以我们应该考虑使用另外一种解法           我们利用构造函数和...

题目:输入一个n求1+2+3...+n,要求不能使用乘除法、for、while、if、else、switch、case以及条件判断语句


方案:题目明确要求不能使用常规的解法,所以我们应该考虑使用另外一种解法

           我们利用构造函数和静态成员变量已经静态成员函数来实现

#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std;

//Num类
class Num{
public:
	Num(void);
	static void Reset(void);
	static int GetSum(void);
private:
	static int value;
	static int sum;
};

//初始化静态成员变量
int Num::value = 1;
int Num::sum = 0;

//实现类的函数
Num::Num(void){
    sum += value; //累加求和
    ++value; //构造完一个对象就把value加1
}

//重置静态成员变量的值
void Num::Reset(void){
    value = 1;
    sum = 0;
}

//返回和
int Num::GetSum(void){
    return sum;
}

int main(){
	//样例
	int n = 100;
	Num *num = new Num[n]; //new n个对象
	delete[] num; //释放内存空间
	num = NULL; //指向NULL
	cout<<Num::GetSum()<<endl; //输出和5050
	return 0;
}

题目:不借助循环打印出1,2,3......n

#include<iostream>
#include<algorithm>
using namespace std;

//定义一个类
class Num{
public:
	Num(void);
	static void ReSet(void);
private:
	static int value;
};

//初始化静态成员的值
int Num::value = 1;

//实现构造函数
Num::Num(void){
    printf("%d ", value);
	++value;
}

//实现ReSet函数
void Num::ReSet(void){
    value = 1;
}

int main(){
	//样例
	int n = 10;
	Num *num = new Num[n]; //new n个对象
	delete[] num;
	num = NULL;
	return 0;
}



目录
相关文章
|
8月前
|
存储 Unix Linux
Linux命令历史记录管理:使用history命令提高工作效率
Linux命令历史记录管理:使用history命令提高工作效率
499 0
|
Web App开发 Linux 数据安全/隐私保护
降低个人密码泄露风险:利用自建服务器部署个人Bitwarden密码管理器
降低个人密码泄露风险:利用自建服务器部署个人Bitwarden密码管理器
1343 0
降低个人密码泄露风险:利用自建服务器部署个人Bitwarden密码管理器
|
7月前
|
SQL 关系型数据库 MySQL
【面试题精讲】MySQL-优化器
【面试题精讲】MySQL-优化器
|
9月前
|
缓存 Linux 开发工具
【Linux常用命令(3)Linux基础命令】
【Linux常用命令(3)Linux基础命令】
186 1
|
搜索推荐 SEO
谷歌开户多少钱?谷歌代投服务费一般是多少?
谷歌开户多少钱?答案是:1500元。谷歌代投服务费一般是多少?答案是:15%服务费。
453 0
谷歌开户多少钱?谷歌代投服务费一般是多少?
|
算法 数据挖掘 数据库
Apriori 算法与FP-growth算法实现
Apriori 算法与FP-growth算法实现
187 0
Apriori 算法与FP-growth算法实现
|
编解码 计算机视觉 C++
【C++】高斯金字塔和拉普拉斯金字塔原理和实现(三)
图像中各个像素与其相邻像素之间的有很强的相关性,包含的信息也十分丰富,目标的尺寸有大有小,对比度有强有弱,此时就需要一个“显微镜”或者“望远镜”-----多尺度图像技术。它可以在不同分辨率下观察目标的特征进而进行处理。
1248 0
【C++】高斯金字塔和拉普拉斯金字塔原理和实现(三)
|
关系型数据库 MySQL Java
Debug:mybatis连接不上mysql解决方案盘点
Debug:mybatis连接不上mysql解决方案盘点
190 0
|
搜索推荐 数据可视化 开发者
|
测试技术 API Android开发
用Airtest获取本地可用设备实现自动启动or关闭应用的小任务
用Airtest获取本地可用设备实现自动启动or关闭应用的小任务
365 0