清闲8
2021-06-22 19:12
采纳率: 100%
浏览 30

纸牌问题2的倍数番一次以此类推到52的基数

任务:编号为1-52张牌,正面向上,从第2张开始,以2为基数,是2的倍数的牌翻一次,直到最后一张牌;然后,从第3张开始,以3为基数,是3的倍数的牌翻一次,直到最后一张牌;然后…从第4张开始,以4为基数,是4的倍数的牌翻一次, 直到最后一张牌;...再依次5的倍数的牌翻一次,6的,7的 直到 以52为基数的 翻过,输出:这时正面向上的牌有哪些?

  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

2条回答 默认 最新

  • CSDN专家-sinjack 2021-06-22 19:17
    已采纳

    双层循环,判断是否整除并且计数。最后的结果就是正面数。

    已采纳该答案
    打赏 评论
  •  用a数组记录翻了每张牌翻了多少次,最后是偶数倍的说明正面朝上。

    #include<stdio.h>
    int main()
    {
        int i,j,cnt=0,n=2,a[53]={0};
        while(n!=52){
            for(i=1;i<=52;i++){
                if(i%n==0){
                    a[i]++;
    
                }
            }
            n++;
        }
        for(i=1;i<=52;i++){
            if(a[i]%2==0){
                cnt++;
            }
        }
        printf("%d\n",cnt);
    
    }
    
    

    打赏 评论

相关推荐 更多相似问题