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

分析:这道题没有多少实际意义,因为在软件开发中不会有这么变态的限制。但这道题却能有效地考查发散思维能力,而发散思维能力能反映出对编程相关技术理解的深刻程度。

通常求1+2+…+n 除了用公式n(n+1)/2之外,无外乎循环和递归两种思路。由于已经明确限制for和while的使用,循环已经不能再用了。同样,递归函数也需要用if语句或者条件判断语句来判断是继续递归下去还是终止递归,但现在题目已经不允许使用这两种语句了。我们仍然围绕循环做文章。循环只是让相同的代码执行n遍而已,我们完全可以不用for和while达到这个效果。比如定义一个类,我们new一含有n个这种类型元素的数组,那么该类的构造函数将确定会被调用n次。我们可以将需要执行的代码放到构造函数里。

#include <iostream>
#include <string.h>
#include <stdio.h>using namespace std;class Node
{private:static int i;static int ans;public:Node(){i++;ans += i;}static void set(){i = 0;ans = 0;}static int getSum(){return ans;}
};int Node::i = 0;
int Node::ans = 0;int Work(int n)
{Node::set();Node *node = new Node[n];delete []node;node = NULL;return Node::getSum();
}int main()
{int n;while(cin>>n)cout<<Work(n)<<endl;return 0;
}

特殊方法求1~n的和相关推荐

  1. 【数学知识】三种方法求 [1,n] 中所有数欧拉函数(线性筛欧拉函数优化至 O(n) )

    整理的算法模板合集: ACM模板 ①直接求小于或等于n,且与n互质的数个数(求[1,n]中所有数的欧拉函数时间复杂度:O(nn)O(n\sqrt{n})O(nn​)) ②求[1,n]之间每个数的质因数 ...

  2. 用子函数的方法求一个3*4的数组的转置数组

    <程序设计基础实训指导教程-c语言> ISBN 978-7-03-032846-5 p142 7.1.2 上级实训内容 [实训内容3]用子函数的方法求一个3*4的数组的转置数组 #incl ...

  3. 用子函数的方法求一维数组中所有元素之和

    <程序设计基础实训指导教程-c语言> ISBN 978-7-03-032846-5 p142 7.1.2 上级实训内容 [实训内容2]用子函数的方法求一维数组中所有元素之和 #includ ...

  4. Database之SQL:SQL之over partition by开窗函数的简介、使用方法(求各班级内各自排名/求各班级内第一名/求各班级内分数递增和等案例解析)之详细攻略

    Database之SQL:SQL之over partition by开窗函数的简介.使用方法(求各班级内各自排名/求各班级内第一名/求各班级内分数递增和等案例解析)之详细攻略 目录 over part ...

  5. boost::math模块使用 Brent 方法求函数最小值的示例

    boost::math模块使用 Brent 方法求函数最小值的示例 实现功能 C++实现代码 实现功能 boost::math模块使用 Brent 方法求函数最小值的示例 C++实现代码 #inclu ...

  6. 用符号方法求下列极限或导数matlab,实验7答案 Matlab符号计算

    matlab实验报告答案 实验7 Matlab符号计算 实验目的: 1. 掌握定义符号对象的方法: 2. 掌握符号表达式的运算法则以及符号矩阵运算. 3. 掌握求符号函数极限及导数的方法. 4. 掌握 ...

  7. 7-35 蒙特卡罗方法求圆周率 (30 分)

    使用蒙特卡洛仿真方法求圆周率. 输入格式: 从键盘输入四个实型数和一个整型数,分别为矩形左上角的横坐标.纵坐标.矩形长度.矩形宽度和投点次数,数与数之间可以用一个或多个空格或回车分隔. 输出格式: 如 ...

  8. Java黑皮书课后题第6章:6.10(使用isPrime方法)程序清单6-7提供了测试某个数字是否是素数的方法isPrime(int number)。使用这个方法求小于10000的素数的个数

    6.10(使用isPrime方法)程序清单6-7提供了测试某个数字是否是素数的方法isPrime(int number).使用这个方法求小于10000的素数的个数 题目 题目描述 程序清单6-7代码 ...

  9. 编写一个函数,输入n为偶数时,调用方法求1/2+1/4+...+1/n,当输入n为奇数时,调用函数1/1+1/3+...+1/n...

    需求:编写一个函数,输入n为偶数时,调用方法求1/2+1/4+...+1/n,当输入n为奇数时,调用函数1/1+1/3+...+1/n package com.Summer_0511.cn;impor ...

  10. 用符号方法求下列极限或导数matlab,matlab实验

    3,设有矩阵A 和B 123453 0166789101769A ,11 12131415023416171819209 7021 22 23 24 254 13 11B ???? ????-? ?? ...

最新文章

  1. 跨平台抓包软件,可以替代Fiddler
  2. 改变jupyter notebook的主题背景颜色
  3. java 小波去噪原理_小波去噪的基本知识
  4. [2018/11/14]思考
  5. windows7下cmd中一键切换virtualenv中的Python版本
  6. Lock的tryLock()方法
  7. 结对编程1--模块化
  8. C#项目打包后安装的桌面快捷方式图标怎么设置成自己想要的图标
  9. DataSet与XML导入导出方法
  10. sprint敏捷开发
  11. 从抢票软件到浏览器设计
  12. 篮球记分牌c语言程序和报告,跪求:设计一款篮球记分牌,包括C语言程序和proteus的仿真图,最好附带设计报告.。邮箱liuzhonghuaol@126.com。...
  13. 【图片上传与图片显示】 SpringBoot ajax (跨域问题)
  14. 0 0 0 ’\0’ 区别
  15. Inversion Lemma
  16. 银行数据管理办法【附下载】
  17. 利用哈希技术统计C源程序关键字出现频度
  18. 怎样写一个简单的操作系统?(原文标题:How to write a simple operating system) 分类: 翻译 2011-01-26 01:10 3175人阅读 评论(3) 收藏
  19. HeadFirst 设计模式(二)观察者模式(Observer Pattern)
  20. 【单片机】C52单片机之4X4矩阵键盘和数码管联动

热门文章

  1. Spring 中的代理选择原则
  2. Redis中的主从复制的不足
  3. Redis中的Lua 脚本
  4. MapReduce-流量统计求和-分区代码实现
  5. 数据库-优化-MYSQL数据库设计规范
  6. 摆放家具-家具类以及创建家具对象
  7. 公共方法-利用for else搜索字典列表-for else
  8. 如何禁用单个FegionClient的Hystrix的支持
  9. 【多态】多态的向下转型
  10. arcgis加载天地图_ArcGIS Runtime SDK for Android100.5.0端加载天地图服务