【47】2求1+2+3+...+n
来源:互联网 发布:实用魔术教学软件 编辑:程序博客网 时间:2024/05/16 07:40
【47】2求1+2+3+…+n
- 时间限制:1秒
- 空间限制:32768K
题目描述
求1+2+3+…+n,要求不能使用乘除法、for、while、if、else、switch、
case等关键字及条件判断语句(A?B:C)。
VS2010代码:
/***************************************************///方法二:虚函数和继承#include<iostream>using namespace std; class A;A* Array[2]; //定义基类指针class A{public: virtual unsigned int sum(unsigned int n) { return 0; }};class B: public A {public: virtual unsigned int sum(unsigned int n) { return Array[!!n]->sum(n-1) + n;} //整形的连续两次取!变成对应的bool类型。};class Solution {public: int Sum_Solution(int n) { A a; B b; Array[0]=&a; //循环结束 Array[1]=&b; //循环开始 int value= Array[1]->sum(n); //用虚函数形成多态,从而可以只调用sum即可。 return value; }};int main(){ Solution s1; cout<<s1.Sum_Solution(5)<<endl;}
基类指针可以指向派生类地址,但(由于类的内存机制,继承时内存中先是基类成员,然后才是派生类成员)仅限于指向基类中存在的成员
派生类指针指向基类时,会发生数组越界访问的情况。
将派生类的地址交给基类使用,是实现多态的基础。(因为虚函数表和虚函数)。
0 0
- 【47】2求1+2+3+...+n
- 【47】3求1+2+3+...+n
- 【47】求1+2+3+...+n
- 47、求1+2+3+...+n
- 1、求n!;2、求1!+2!+3!+......+n!之和
- 求1+2+3+....n
- 求1+2+3+...+n
- 求1+2+3+...+n
- 求1+2+3+...+n
- 求1+2+3+...+n
- 求1+2+3+。。。+N
- 求1+2+3+...+n
- 求1+2+3+...+n
- 求1+2+3+...+n
- 求1+2+3+...+n
- 求1+2+3+...+n
- 求1+2+3+...+n
- 求1+2+3+...+n
- Calendar set时间时,天数加1,月份的改变
- 现代操作系统/深入理解计算机系统:虚拟存储管理
- JSP XML 数据处理
- Android学习笔记040之Handler
- coreseek分词词表那些事
- 【47】2求1+2+3+...+n
- EventBus使用详解
- 访问者模式
- laravel路由404 openvpn客户端安装 apache版本查看 ls详细信息及隐藏文件 laravel项目迁移 2016.08.09回顾
- 解决#安卓手机更新软件后悔,如何回退版本#
- HDU1087 最大子序列和
- 全排列的一些总结
- avcodec_decode_video2解码图像不成功分析
- 【U8】查询明细账显示两行合计与累计