笔试题里面看到的,总结一下,分享给需要的小伙伴。
一、原始办法
这种方法最直观明了。
int add(int x, int y)
{
return x + y;
}
二、利用printf的返回值
这个操作鲜为人知。
#include <stdio.h>
int add(int a, int b){
if(a != 0 && b != 0)
return printf("%*c%*c",a,'\r',b,'\r');
else return a != 0 ? a : b;
}
int main(){
int A = 0, B = 0;
printf("Enter the two numbers to add\n");
scanf("%d %d", &A, &B);
printf("Required sum is %d\n", add(A, B));
return 0;
}
利用了printf如下几个特性:
- printf的返回值表示打印的字符个数;
- printf中*表示需要输入一个变数,例如:printf("%*c", 5, ‘\r’)表示printf("%5c", ‘\r’)。
三、利用位操作
#include <stdio.h>
int add(int x, int y)
{
if (y == 0)
return x;
else
return add( x ^ y, (x & y) << 1);
}
int main(){
int A = 0, B = 0;
printf("Enter the two numbers to add\n");
scanf("%d %d", &A, &B);
printf("Required sum is %d\n", add(A, B));
return 0;
}
其他方法,欢迎补充!