首页 > 其他 > 详细

7-4 翻牌 (15分)

时间:2020-01-19 22:32:20      阅读:188      评论:0      收藏:0      [点我收藏+]

所谓翻牌,就是将原来正面朝上的牌翻过来变成背面朝上,原来背面朝上的牌翻过来变成正面朝上。

现在有 n 张扑克牌正面朝上一字排开摊在桌面上,依次编号为 1、2、、n。首先对 2 的倍数翻牌,再对 3 的倍数翻牌,接下来对 4、5、……、n 的倍数翻牌。

请问最后哪些牌正面朝上。

输入格式

扑克牌张数 n (0<n≤10000)

输出格式

正面朝上牌的编号(以空格间隔)

输入样例

6

输出样例

1 4
#include<iostream>
#include<string>
#include<vector>
using namespace std;
int main()
{
    int n,tmp,tmp1=0;
    cin>>n;
    vector<int>a(n+1);
    for(int i=2;i<=n;i++)
    {
        tmp=i;
        for(int j=2;tmp<=n;j++)
        {
            
            if(a[tmp]==0)
                a[tmp]=1;
            else if(a[tmp]==1)
                a[tmp]=0;
            tmp=i*j;
        }
    }
        for(int i=1;i<=n;i++)
    {
        if(a[i]==0)
            tmp1++;
    }
    for(int i=1;i<=n;i++)
    {
        if(a[i]==0)
            if(tmp1!=1)
            printf("%d ",i),tmp1--;
            else
            printf("%d",i);
    }
}

7-4 翻牌 (15分)

原文:https://www.cnblogs.com/luoyoooo/p/12215742.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!