UVA - 10935 Throwing cards away I (数组)

来源:互联网 发布:微信机器人 java 编辑:程序博客网 时间:2024/04/30 10:14

题目大意:桌子上有n张牌,从1到n,每次把最顶上的那张牌丢到,然后把下一张放到最后一张后面,问丢掉的牌和最后一张是什么

解题思路:用数组模拟,注意1的时候

#include<cstdio>#include<cstring>int num[10000];int main() {    int n;    while(scanf("%d", &n) == 1 && n) {        memset(num,0,sizeof(num));        if(n == 1) {            printf("Discarded cards:\n");            printf("Remaining card: 1\n");            continue;        }        for(int i = 1; i <= n; i++)            num[i] = i;        int last = n + 1, pos = 1;        printf("Discarded cards: ");        for(int i = 0; i < n - 2; i++) {            printf("%d, ", num[pos]);            num[last++] = num[pos+1];            pos += 2;        }        printf("%d\n",num[pos]);        num[last++] = num[pos+1];        pos += 2;        printf("Remaining card: %d\n",num[pos]);    }    return 0;}
0 0
原创粉丝点击