C++
来源:互联网 发布:安居客网络经纪人登录 编辑:程序博客网 时间:2024/04/28 15:00
实现1+2+3…+n,要求不能使用乘除法、循环、条件判断、选择相关的关键字(for、while、if、else、switch、case)。
解法一: 利用 &&的性质
#include<iostream>using namespace std;int sum=0;int add(int n){ sum+=n; n&&add(n-1);}int main(){ add(5); cout<<sum;}
解法二: 构造类
#include<iostream>using namespace std;int sum=0,n=0;class Add{ public: Add() { n++; sum+=n; }};int main(){ Add a[5]; cout<<sum;}
解法三: 使用函数指针
#include<iostream>#include<stdio.h>using namespace std;typedef int (*fun)(int);int fun1(int num){ return 0;}int fun2(int num){ fun f[2] = {fun1,fun2}; return num + f[!!num](num-1);} int main() { printf("%d",fun2(5)); return 0; }