面试题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,并不是其它某个数。
这题太开放了,直接看的书上的答案。
#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,并不是其它某个数。
相关文章推荐
- 前端开发面试经典题献给大家!
- 怎么写出一本程序员风格的小说——转自知乎
- 面试题49:把字符串转换成整数(atoi)
- 互联网公司面试题库
- 机器学习面试材料
- 国内互联网公司算法&机器学习岗(阿里星)面试总结
- 想要惊艳面试官?你一张嘴就输了
- 几种查找数组的前K个最小值的算法
- 为什么越来越多人选择小而美的公司?
- 算法研究、编程艺术、红黑树、数据挖掘、程序员面试5大系列集锦
- git修改提交作者和邮箱
- 笑傲IT职场
- 黑马程序员:学生爆满很苦恼,暑期活动不能少!
- 情商面试题
- 哇,这就是传说中程序员的社区
- [置顶] java面试题
- [置顶] Android面试题【初级工程师版】
- 剑指0ffer面试题3:二维数组中的查找
- 关于java研发工程师面试相关的部分参考
- 10个值得深思的PHP面试问题