找到两个数字的总和而不使用任何运算符

sur*_*ngh 0 c

在一次采访中,我被要求编写一个C程序,以便在不使用任何运算符的情况下找到两个数字的总和.我认为可以使用返回值来完成printf,但我不知道如何做到这一点.

这可能吗?

tem*_*def 6

这是一个糟糕的面试问题.真.它根本不评估任何相关技能.

那说,这就是答案:

int n1 = /* ... */;
int n2 = /* ... */
int sum = printf("%*s%*s", n1, "", n2, "");
Run Code Online (Sandbox Code Playgroud)

%*sprintf表示"打印一个字符串,但要打印的字符的最小数目等于传递作为参数的值." 这通过打印n1字符,然后打印n2字符,并使用printf返回打印的字符总数的事实来工作.在printf将总是打印准确n1 + n2的字符,由于空字符串长度为0,因此最大填充将始终使用.这可能是我想到的最糟糕的添加数字的方式 - 运行时间是Θ(n1 + n2),并且在此过程中,它会在屏幕上打印出数以万计的空白.

但是,是的.这是一个糟糕的面试问题,你应该对在这个作为面试问题的地方工作有严重的担忧.招聘过程中出现了严重问题.

希望这可以帮助!