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

来源:互联网 发布:c语言常用输入函数有 编辑:程序博客网 时间:2024/04/29 14:08

题目:输入一个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; //指向NULLcout<<Num::GetSum()<<endl; //输出和5050return 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;}


0 0
原创粉丝点击