算法竞赛入门经典ch1_变量交换

输入两个整数a和b,交换二者的值,然后输出。

样例输入:

824 16

样例输出:

16 824

我的:

#include "stdio.h"
/*
int main()
{
    int a, b, temp;
    scanf("%d%d", &a, &b);
    temp = b;
    b = a;
    a = temp;
    printf("%d %d\n", a, b);
}

还有一种不需要借助第三个变量的方法:

int main()
{
    int a, b;
    scanf("%d%d", &a, &b);
    a = a + b;
    b = a - b;
    a = a - b;
    printf("%d %d\n", a, b);
}

这个一开始没有想到。

它的适用范围很窄:
只有定义了加减法的数据类型才能采用此方法。 事实上,笔者并不推荐读者采用这样的技
巧实现变量交换:三变量法已经足够好

然而我被最佳办法折服:

int main()
{
    int a, b;
    scanf("%d%d", &a, &b);
    printf("%d %d\n", b, a);
}

真的服~

多数算法竞赛采用黑盒测试,即只考查程序解决问题的能力,而不关心采用了什么方法。

posted @ 2017-02-23 18:21  ssh_alitheia  阅读(110)  评论(0编辑  收藏  举报