旋转骰子

Posted wangmou-233-1024-com

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了旋转骰子相关的知识,希望对你有一定的参考价值。

玛莎有n个骰子,每个骰子的6个面上都恰好有一个0到9之间的数字。
现在玛莎将利用这n个筛子来制作新数字。她把n个骰子摆成一排,然后从左到右查看骰子的上表面并读取,即可得到一个新数字。随后她不断的旋转每个骰子的面就可以得到不同的新数字。旋转骰子需要满足以下规则: 1、制作的数字不能包含前导零; 2、制作新数字时不需要使用所有的骰子; 3、使用骰子旋转,无法将数字9转换为数字6,反之亦然。
给定n个骰子,玛莎可以用它们构成从1到x的所有整数。玛莎想知道,对于给定的n个骰子,这个x的最大取值是多少呢?
输入格式:
第一行仅一个整数n,表示骰子的数量(1≤n≤3)。
接下来n行,每行包含6个整数a[i][j](0≤a[i][j]≤9),表示第i个骰子的第j个面上的数字。
输出格式:
输出一个整数,即最大数x,玛莎可以使用她的骰子构成数字从1到x。如果无法构成1,则输出0。

#include <stdio.h>
#include<stdlib.h>
int cmp(const void *a,const void *b)
{
    int* pa=(int*)a;
    int* pb=(int*)b;
    int num1=*pa;
    int num2=*pb;
    return num1-num2;
}
int main (){

    int b[10]={0,1,2,3,4,5,6,7,8,9};
    int cnt[10]={0,0,0,0,0,0,0,0,0,0,};
    int n,i,j,k,h,m=0;
    scanf("%d",&n);
    int a[n][6];
    int output=0;
    int c[234];
    for(i=0;i<234;i++){
        c[i]=0;
    }
    for(i=0;i<n;i++){
        for(j=0;j<6;j++){
            scanf("%d",&a[i][j]);
        }
    }
    for(i=0;i<n;i++){
        for(j=0;j<6;j++){
            if(a[i][j]==b[0]) cnt[0]++;
            if(a[i][j]==b[1]) cnt[1]++;
            if(a[i][j]==b[2]) cnt[2]++;
            if(a[i][j]==b[3]) cnt[3]++;
            if(a[i][j]==b[4]) cnt[4]++;
            if(a[i][j]==b[5]) cnt[5]++;
            if(a[i][j]==b[6]) cnt[6]++;
            if(a[i][j]==b[7]) cnt[7]++;
            if(a[i][j]==b[8]) cnt[8]++;
            if(a[i][j]==b[9]) cnt[9]++;
           }
       }
if(n>1){

    for(i=0;i<n-1;i++){
        for(j=i+1;j<n;j++){
            for(k=0;k<6;k++){
                for( m=0;m<6;m++){
                c[h]=a[i][m]*10+a[j][k];
                c[h+1]=a[j][k]*10+a[i][m];
                h=h+2;
                }
            }
        }
    }
}
for(i=0;i<n;i++){
    for(k=0;k<6;k++){
        c[h]=a[i][k];
        h++;
    }
}
 qsort(c,234,sizeof(int),cmp);
 for(i=0;i<234;i++){
    if(c[i+1]-c[i]>1){
        break;
     }
 }
    printf("%d",c[i]);
    return 0;
} 

以上是关于旋转骰子的主要内容,如果未能解决你的问题,请参考以下文章

旋转的骰子

旋转的骰子

2.旋转的骰子

2.旋转的骰子

华为机试真题 C++ 实现转骰子

洛谷--T4563 滚骰子