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;  }

这里写图片描述

原创粉丝点击