特殊方法求1~n的和
来源:互联网 发布:数据建模的方法 编辑:程序博客网 时间:2024/05/21 19:37
题目:求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~n的和
- 特殊方法求 1 到 n 的和
- 求1~n的和
- 用递归和迭代这两种方法求n的阶层:n!
- 第12 题(特殊方法求1+2+…+n)
- 求幂级数展开的部分和 / 求分数序列前N项和 / 特殊a串数列求和
- 求1+2+...+n的n种方法
- 求1+1/n的累加和
- 二分法 求1到N的和
- 求1到n的和
- 求1至n的和
- 习题:求1!+2!+...n!的和
- 求1到n的倒数和
- Q46:求1到n的和
- 求1+2!+3!+...+N!的和
- 求1+2+3+...+n的和
- C语言求1/n的和,
- 如何实现windows和linux之间的文件传输
- 有用链接
- LoadRunner超时问题和错误
- 为什么选择firefox os
- 97 Things Every Programmer Should Know (oreilly.com)
- 特殊方法求1~n的和
- 题目86:胜利大逃亡
- 如何解决在DOS编译java类时出现的“错误: 编码GBK的不可映射字符”
- nafxcwd.lib(afxmem.obj) : error LNK2005
- Android ListView嵌套Button,Button事件覆盖item事件解决办法
- MyEclipse中web开发修改类文件和配置文件不重启服务器的方法
- 简洁的Bash编程技巧
- MySQL 优化综述专题
- 女儿在老家半年