题目:要求不能使用乘除,,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,并不是其它某个数。