Problem L: 循环交换

Problem L: 循环交换

Time Limit: 1 Sec   Memory Limit: 128 MB
Submit: 595   Solved: 456
[ Submit][ Status][ Web Board]

Description

输入三个数,循环交换他们的位置。
编写一个函数swp()来实现这个功能,函数调用格式见append.cc。

Input

输入第一行为三个整数a、b、c,后接多行,每行一个整数k。若k=0,则向左循环交换一次位置(abc->bca),否则,为向右交换k次。当k=1时,向右交换一次(abc->cab)。

Output

从输入的第二行开始,每行对应输出三个整数,为交换后的结果。

Sample Input

1 10 1000321

Sample Output

10 100 1 10 100 1 100 1 10 10 100 1

HINT

Append Code

int main()
{
    int a, b, c, k;
    cin >> a >> b >> c;
    while(cin >> k)
    {
        if(k == 0)
            swp(a, b, c);
        else
            swp(a, b, c, k);
        cout << a << " " << b << " " << c << " " << endl;
    }
}
#include <bits/stdc++.h>
using namespace std;

/*void swp(int &a, int &b, int &c)
{
    int p = a;
    a = b;
    b = c;
    c = p;
}//交换值用取地址&符,int一个常量就好,*/
int swp( int &a, int &b, int &c, int k=0)
/*不让k=0的话就需要多写一个上边的swp()*/
{
    if(k == 0)
    {
        int p = a;
        a = b;
        b = c;
        c = p;
        return 0;
    }
    int p = c;
    c = b;
    b = a;
    a = p;
    while((k--)!=1)//已经交换一次,所以不用到0
    {
        //cout<<"交换第"<<k<<"次"<<endl;
        return swp(a, b, c, k);
    }
}

int main()
{
    int a, b, c, k;
    cin >> a >> b >> c;
    while(cin >> k)
    {
        if(k == 0)
            swp(a, b, c);
        else
            swp(a, b, c, k);
        cout << a << " " << b << " " << c << " " << endl;
    }
}


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值