7-5 小明的第一个扑克牌“魔术”(队列或链表操作) (10 分)java版

小明刚上小学,学会了第一个扑克牌“魔术”,到处给人表演。魔术的内容是这样的:

他手里握着一叠扑克牌:A,2,…J,Q,K 一共13张。他先自己精心设计它们的顺序,然后正面朝下拿着,开始表演。只见他先从最下面拿一张放到最上面,再从最下面拿一张翻开放桌子上,是A;然后再从最下面拿一张放到最上面,再从最下面拿一张翻开放桌子上,是2;…如此循环直到手中只有一张牌,翻开放桌子上,刚好是K。这时,桌上牌的顺序是:A,2,3,4,5,6,7,8,9,10,J,Q,K请你计算一下,小明最开始的时候手里牌的顺序是怎样的。把结果写出来,逗号分割,小明“魔术”开始时,最下面的那张牌输出为第一个数据。

输入格式:
输入这叠扑克的数量。

输出格式:
对每一组输入,在一行中输出牌的初始顺序(最下面的那张牌输出为第一个数据,数字1表示A,数字11表示J,数字12表示Q,数字13表示K)。

输入样例:
在这里给出一组输入。例如:

3

输出样例:
在这里给出相应的输出。例如:

2,1,3
import java.util.*;
public class Main{
    
    public static void main(String args[]) {
        Scanner sc=new Scanner(System.in);
        int n=sc.nextInt();
        int a[]=new int [n];
        for(int i=0;i<n-1;i++) {
        	a[i]=i+1;
        }
        List <Integer> b=new ArrayList<Integer>();
        b.add(n);
        for(int i=n-2;i>=0;i--) {
        	b.add(0,a[i]);
        	int tmp=b.get(b.size()-1);
        	b.remove(b.size()-1);
        	b.add(0,tmp);
        }
        for (int i = 0; i < b.size(); i++) {
			if (i==b.size()-1) {
				System.out.print(b.get(i));
				break;
			}
			System.out.print(b.get(i)+",");
		}
    }
}


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值