骰子问题求解,初学c

lukaijun 发布于 2017/01/15 17:28
阅读 453
收藏 0

一个正方体骰子共有6个面,标上1、2、3、4、5、6共6个数字,其中1的对面为6,2的对面为5,3的对面为4。各个面之间的关系如图所示:

现在我们扔出骰子,只允许你观察面朝上和面向你的两个面,你能否告诉我们所有面值呢?
图片说明

如图中,上面和前面是4和1时,右面是2,后面是6,左面是5,下面是3。

输入

输入数据有多组,每组占一行,每行有两个整数,表示面朝上和面向你的两个面值。

输出

每组输出6个数,即上、下、左、右、前、后各个面的值。

其中前指的是面向你的面

样例输入

4 1

样例输出

4 3 5 2 1 6

这个不用暴力穷举怎么解

加载中
1
如比如比
如比如比
左手骰子,根据一二三面两两相邻,四五六面两两相邻,不很容易就知道2在右边了么?
0
如比如比
如比如比
这个不用暴力穷举,利用和是7很快就能得出(4,3)(x,x)(1,6),剩下的不是52,就是25.
0
lukaijun
lukaijun

引用来自“壶漏子”的评论

左手骰子,根据一二三面两两相邻,四五六面两两相邻,不很容易就知道2在右边了么?

这个我只能人工判断

我要的是C语言

0
Fatboy123
Fatboy123
各个面的关系和点数挂钩吧,上1的话肯定是下6
0
lukaijun
lukaijun

引用来自“Fatboy123”的评论

各个面的关系和点数挂钩吧,上1的话肯定是下6

首先与1相邻就一定与6相邻

另外重点不是不是一得对面(这个我当然知道)而是旁边

还有不用回了,再回我真的要骂了,你压根没仔细看过我题目

-1
lukaijun
lukaijun

引用来自“壶漏子”的评论

这个不用暴力穷举,利用和是7很快就能得出(4,3)(x,x)(1,6),剩下的不是52,就是25.

关键就是不知道是5还是2啊

我就是这样穷举的

#include<stdio.h>
int main()
{
    int a,b;
    while(scanf("%d%d",&a,&b)!=EOF)
    {
        printf("%d %d ",a,7-a );
        if(a==4&&b==5)
            printf("6 1 ");
        else if(a==2&&b==4)
            printf("6 1 ");
        else if(a==3&&b==2)
            printf("6 1 ");
        else if(a==5&&b==3)
            printf("6 1 ");
        else if(a==4&&b==2)
            printf("1 6 ");
        else if(a==2&&b==3)
            printf("1 6 ");
        else if(a==3&&b==5)
            printf("1 6 ");
        else if(a==5&&b==4)
            printf("1 6 ");
        else if(a==1&&b==4)
            printf("2 5 ");
        else if(a==4&&b==6)
            printf("2 5 ");
        else if(a==6&&b==3)
            printf("2 5 ");
        else if(a==3&&b==1)
            printf("2 5 ");
        else if(a==3&&b==6)
            printf("5 2 ");
        else if(a==6&&b==4)
            printf("5 2 ");
        else if(a==4&&b==1)
            printf("5 2 ");
        else if(a==1&&b==3)
            printf("5 2 ");
        else if(a==2&&b==1)
            printf("4 3 ");
        else if(a==1&&b==5)
            printf("4 3 ");
        else if(a==5&&b==6)
            printf("4 3 ");
        else if(a==6&&b==2)
            printf("4 3 ");
        else
            printf("3 4 ");
        printf("%d %d\n",b,7-b);
        
    }return 0;
}
就不麻烦你们帮我把程序写简单了

重点是不知道先5还是先2

返回顶部
顶部