博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
每天一道算法题(1) ——不用乘除法求和1+2+…+n
阅读量:7045 次
发布时间:2019-06-28

本文共 723 字,大约阅读时间需要 2 分钟。

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

方法1:使用函数指针。

typedef int (*function)(int);int func1(int n){	return 0;}int func2(int n){	function f[2]={func1,func2};	return n+f[!!n](n-1);}void main(){	cout<

  方法2:使用构造函数。

class test{	static int N;	static int sum;public :	test(){sum+=++N;}	static void reset(){N=sum=0;}	static int getSum(){return sum;}};int test::N = 0;int test::sum = 0;void main(){	test::reset();	test *p=new test[10];	cout<

方法3:使用虚函数的编译多态性

class A{  public:	virtual int sum(int n){return 0;};};class B:public A{    public:	int sum(int n){	   A a;B b;	   A *p[2]={&a,&b};	   return n+p[!!(n-1)]->sum(n-1);}};void main(){	B b;	cout<

转载于:https://www.cnblogs.com/engineerLF/p/5393051.html

你可能感兴趣的文章
Masonry+Infinite-Scroll实现无刷新无分页完美瀑布流(转)
查看>>
WPF DataTrigger的两个用法
查看>>
细数:九部美国励志电影
查看>>
漫说单例模式--宝宝成长记 你真的了解了吗?
查看>>
yii表单
查看>>
惊艳的HTML5动画特效及源码
查看>>
2014年QS世界大学排名
查看>>
面向对象程序设计与面向过程程序设计解析
查看>>
公网服务 基础知识
查看>>
vs必备快捷键整理
查看>>
Android 广播(内部类)
查看>>
[AX 2012] Woker user request
查看>>
Android-LinearLayout布局技巧(二)
查看>>
黄页js-sdk开发总结分享
查看>>
程序员应该知道的10大编程格言
查看>>
EasyUI的combobox组件Chrome浏览器不兼容问题解决办法
查看>>
JAVA实现二叉树
查看>>
如何制作iso文件
查看>>
构建openssl debug版
查看>>
jquery 的datatables插件问题
查看>>