研究生复试的时候老师出的一道算法题,我觉得比较有意思,就来晒晒,看看高人见解。
“只用赋值、加1、循环三个操作实现一个减1的运算。”
上面是原话,老师就给那么多信息,没有别的话了。
高人们有代码的可以贴代码,随便你用什么语言,没代码的说说清楚思路也行。顺便帮忙看看哪些答案有错误啊。
[解决办法]
template <typename T>T MOne(T a){ T i = 0; for (i; (i + 1) != a; i++) { } return i;}
[解决办法]
抛砖引玉 给个只对奇数有效的
union U{ int a; int b:1;}u;int f(int a){ u.a = a; u.b++; return u.a;}int _tmain(int argc, _TCHAR* argv[]){ printf("%d\n", f(9)); return 0;}
[解决办法]