题目描述

求1+2+3+...+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。
 
题解:
  利用类的构造和析构
 //利用类的构造
class Temp{
public:
Temp() { ++N; sum += N; }
static void Reset() { N = ; sum = ; }
static unsigned int getRes() { return sum; }
private:
static unsigned int N, sum;//一定得是静态,否则每次创建是会重新赋值
};
unsigned int Temp::N = ; //一定得先初始化
unsigned int Temp::sum = ; class Solution {
public:
int Sum_Solution(int n) {
Temp::Reset();
Temp *t = new Temp[n];
delete[]t;
t = nullptr;
return Temp::getRes();
}
};
//利用类的析构
class A;
A *Array[];
class A{
public:
virtual unsigned int sum(unsigned int n){
return ;
}
};
class B :public A {
public:
virtual unsigned int sum(unsigned int n) {
return Array[!!n]->sum(n - ) + n;
}
};
int getSum(int n) {
A a;
B b;
Array[] = &a;
Array[] = &b;
return Array[]->sum(n);
}
//利用函数指针
typedef unsigned int(*fun)(unsigned int);
unsigned int Solution3_Teminator(unsigned int n){
return ;
} unsigned int Sum_Solution3(unsigned int n){
static fun f[] = { Solution3_Teminator, Sum_Solution3 };
return n + f[!!n](n - );
} // 利用模板
template <unsigned int n> struct Sum_Solution4{
enum Value { N = Sum_Solution4<n - >::N + n };
}; template <> struct Sum_Solution4<>{
enum Value { N = };
}; template <> struct Sum_Solution4<>{
enum Value { N = };
};

最新文章

  1. BigDecimal
  2. 使用es6的set和map实现数组去重复
  3. js常用函数陆续总结
  4. jsp实现过滤器的简单例子
  5. 解决&lt;a&gt;文本本身带下划线和超链接下划线重合的问题
  6. .net DataTable 正确排序姿势
  7. [Swust OJ 715]--字典序问题(组合数预处理/数位dp)
  8. 框架基础:ajax设计方案(五)--- 集成promise规范,更优雅的书写代码
  9. Redis “瘦身”指南
  10. HTML知识速递
  11. Upgrading an ASP.NET MVC 2 Project to ASP.NET MVC 3 Tools Update
  12. Winform调用百度地图接口简单示例
  13. STM32手记
  14. 我来谈谈PHP和JAVA在web开发上的的区别
  15. windows 10 下sublime text 3配置c/c++编译环境
  16. Linux基本权限管理
  17. 微软ASP.NET网站部署指南(2):部署SQL Server Compact数据库
  18. input输入框type=file时accept中可以限制的文件类型(转载)
  19. Linux下一个最简单的不依赖第三库的的C程序(2)
  20. 使用微软提供的Office Online实现Office文档的在线查看,编辑等功能

热门文章

  1. cs224d 作业 problem set1 (二) 简单的情感分析
  2. python3迷宫,多线程版
  3. 中国HBase技术社区第一届Meetup资料大合集
  4. Django框架(二十五)—— Django rest_framework-路由控制与响应器
  5. Uva10817_Headmaster&#39;s Headache
  6. LINUX 安装PHP GD库遇到的坑
  7. 慎用margin系列3---IE6下3px bug
  8. Linux下的解压缩
  9. css篇-简化版
  10. Python删除列表中的空格