您的位置:首页 > 职场人生

面试题46:求1+2+...+n

2016-07-21 17:17 253 查看
        题目:要求不能使用乘除,,for,while,if,else switch,case等以及条件判断语句。

        这题太开放了,直接看的书上的答案。

        #include "stdafx.h"
#include <iostream>
using namespace std;

typedef unsigned int(*fun)(unsigned int);

unsigned int s1(unsigned int n)
{
return 0;
}

unsigned int s2(unsigned int n)
{
static fun f[2] = { s1, s2 };
return n + f[!!n](n - 1);
}

int _tmain(int argc, _TCHAR* argv[])
{
cout << s2(100) << endl;
return 0;
}
       说明下,如果n不是0,比如说100,那么!n就是false,!!n就是true,并不是其它某个数。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: