博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
编程算法 - 求1+2+...+n(函数指针) 代码(C++)
阅读量:6950 次
发布时间:2019-06-27

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

求1+2+...+n(函数指针) 代码(C++)

本文地址: http://blog.csdn.net/caroline_wendy

题目: 求1+2+...+n, 要求不能使用乘除法\for\while\if\else\switch\case等keyword及条件推断语句(A?B:C).

能够使用函数指针求解, 通过递归调用, 每次递归值减1, 使用求反运算(!), 即非0为0, 0为1.

代码:

/* * main.cpp * *  Created on: 2014.7.12 *      Author: spike */#include 
#include
#include
#include
typedef size_t (*fun)(size_t);size_t Sum_T(size_t n) { return 0;}size_t Sum(size_t n) { static fun f[2] = {Sum_T, Sum}; return f[!!n](n-1) + n;}int main(void){ size_t result = Sum(10); printf("result = %d\n", result); return 0;}
输出:

result = 55

你可能感兴趣的文章
iconv-----linux gbk 转 UTF-8
查看>>
CSS强制英文、中文换行与不换行 强制英文换行
查看>>
docker日常操作
查看>>
一站式VDI部署教程(4)配置SMB3.0共享
查看>>
ip pv uv及相应统计shell
查看>>
对象和实例的区别
查看>>
zabbix监控环境的搭建
查看>>
用python解方程和微积分
查看>>
CodeMirror自动提醒配置
查看>>
http://my.oschina.net/huangyong/blog/372491?fromerr=hobPLCmQ#OSC_h2_5
查看>>
【jquery】fancybox 是一款优秀的 jquery 弹出层展示插件
查看>>
Python在线 基础教程
查看>>
opencv函数速查笔记
查看>>
Screen命令
查看>>
Perl篇:获取操作系统的信息
查看>>
Docker系列教程27-在生产环境中使用Docker Compose
查看>>
Spring Cloud Alibaba系列教程-03-搭建生产可用的Nacos集群
查看>>
泡水十几秒仍能工作 小米手机2也能防水了
查看>>
linux设备驱动第三篇:写一个简单的字符设备驱动
查看>>
仿微信选项卡主页面创建
查看>>