【求助】 12345 随意填入九宫格 横竖相加都是8

bluestar2009 2018-03-21 03:28:37
12345 随意填入九宫格 横竖相加都是8

全部组合输出来
...全文
3972 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
bluestar2009 2018-03-21
  • 打赏
  • 举报
回复
我还是太菜了 就只有第一个的那个9个for循环能理解 其他大神的 我都是理解不能啊
sanGuo_uu 2018-03-21
  • 打赏
  • 举报
回复
#include <stdio.h>

//检查数字是否在1~5
int checkOK(int num){
    if(num>0&&num<6) return 1;
    return 0;
}

//12345 随意填入九宫格 横竖相加都是8
void main(){
    int Nine[3][3]={0};

    int index=0;
    for(int i1=1;i1<6;i1++){
        Nine[0][0]=i1;
        for(int i2=1;i2<6;i2++){
            Nine[0][1]=i2;
            for(int i3=1;i3<6;i3++){
                Nine[1][0]=i3;
                for(int i4=1;i4<6;i4++){
                    Nine[1][1]=i4;

                    Nine[0][2]=8-Nine[0][0]-Nine[0][1];
                    if(checkOK(Nine[0][2])==0) continue;

                    Nine[1][2]=8-Nine[1][0]-Nine[1][1];
                    if(checkOK(Nine[1][2])==0) continue;

                    Nine[2][0]=8-Nine[0][0]-Nine[1][0];
                    if(checkOK(Nine[2][0])==0) continue;

                    Nine[2][1]=8-Nine[0][1]-Nine[1][1];
                    if(checkOK(Nine[2][1])==0) continue;

                    if((8-Nine[2][0]-Nine[2][1])==(8-Nine[0][2]-Nine[1][2])){
                        Nine[2][2]=8-Nine[2][0]-Nine[2][1];
                        if(checkOK(Nine[2][2])==0) continue;
                    }
                    
                    printf("%d,%d,%d\n",Nine[0][0],Nine[0][1],Nine[0][2] );
                    printf("%d,%d,%d\n",Nine[1][0],Nine[1][1],Nine[1][2] );
                    printf("%d,%d,%d\n",Nine[2][0],Nine[2][1],Nine[2][2] );
                    printf("------------------\n");
                    index++;
                }
            }
        }
    }
    printf("%d\n",index);
}
bluestar2009 2018-03-21
  • 打赏
  • 举报
回复
引用 6 楼 DelphiGuy 的回复:

#include <stdio.h>
#include <algorithm>
#include <string>

int main()
{
  int n = 1, t[18][3] = {{1,2,5},{1,3,4},{1,4,3},{1,5,2},{2,1,5},{2,2,4},{2,3,3},{2,4,2},{2,5,1},
                         {3,1,4},{3,2,3},{3,3,2},{3,4,1},{4,1,3},{4,2,2},{4,3,1},{5,1,2},{5,2,1}};
  std::string b(3, 1); b.resize(18, 0);
  do {
    int x[3] = {0};
    for (int i = 0, p = 0; i < 18; i++)
      if (b[i]) {x[p] = i; p++;}
    if ((t[x[0]][0] + t[x[1]][0] + t[x[2]][0] == 8) && 
        (t[x[0]][1] + t[x[1]][1] + t[x[2]][1] == 8) &&
        (t[x[0]][2] + t[x[1]][2] + t[x[2]][2] == 8))
      printf("%d:\n%d %d %d\n%d %d %d\n%d %d %d\n\n", n++, t[x[0]][0], t[x[0]][1], t[x[0]][2], 
             t[x[1]][0], t[x[1]][1], t[x[1]][2], t[x[2]][0], t[x[2]][1], t[x[2]][2]);
  } while (std::prev_permutation(b.begin(), b.end()));

  return 0;
}
昵称碉堡了 哈哈 这是先求出一堆符合加起来8的 然后再组合么?
  • 打赏
  • 举报
回复

#include <stdio.h>
#include <algorithm>
#include <string>

int main()
{
  int n = 1, t[18][3] = {{1,2,5},{1,3,4},{1,4,3},{1,5,2},{2,1,5},{2,2,4},{2,3,3},{2,4,2},{2,5,1},
                         {3,1,4},{3,2,3},{3,3,2},{3,4,1},{4,1,3},{4,2,2},{4,3,1},{5,1,2},{5,2,1}};
  std::string b(3, 1); b.resize(18, 0);
  do {
    int x[3] = {0};
    for (int i = 0, p = 0; i < 18; i++)
      if (b[i]) {x[p] = i; p++;}
    if ((t[x[0]][0] + t[x[1]][0] + t[x[2]][0] == 8) && 
        (t[x[0]][1] + t[x[1]][1] + t[x[2]][1] == 8) &&
        (t[x[0]][2] + t[x[1]][2] + t[x[2]][2] == 8))
      printf("%d:\n%d %d %d\n%d %d %d\n%d %d %d\n\n", n++, t[x[0]][0], t[x[0]][1], t[x[0]][2], 
             t[x[1]][0], t[x[1]][1], t[x[1]][2], t[x[2]][0], t[x[2]][1], t[x[2]][2]);
  } while (std::prev_permutation(b.begin(), b.end()));

  return 0;
}
mstlq 2018-03-21
  • 打赏
  • 举报
回复
引用 3 楼 bluestar2009 的回复:
[quote=引用 2 楼 zhouqt 的回复:] 感觉要用递归算法写程序,暂时就这样吧 输出结果还有,结果显示不下了 ---------------- -----
求大神代码[/quote] 递归?你以前发的帖子里,我不是已经回了一个基本套路给你了吗?
N阶魔方 2018-03-21
  • 打赏
  • 举报
回复
引用 3 楼 bluestar2009 的回复:
[quote=引用 2 楼 zhouqt 的回复:] 感觉要用递归算法写程序,暂时就这样吧 输出结果还有,结果显示不下了 ---------------- -----
求大神代码[/quote] 回复你的是同一个人。。。。。。。。。。。。
bluestar2009 2018-03-21
  • 打赏
  • 举报
回复
引用 2 楼 zhouqt 的回复:
感觉要用递归算法写程序,暂时就这样吧 输出结果还有,结果显示不下了 ---------------- -----
求大神代码
N阶魔方 2018-03-21
  • 打赏
  • 举报
回复
#include "stdafx.h"
#include "iostream"
using namespace std;

int _tmain(int argc, _TCHAR* argv[])
{
	const int ArrNum[] = { 1, 2, 3, 4, 5 };

	for (int i11 = 0; i11 < 5; i11++)
		for (int i12 = 0; i12 < 5; i12++)
			for (int i13 = 0; i13 < 5; i13++)
				for (int i21 = 0; i21 < 5; i21++)
					for (int i22 = 0; i22 < 5; i22++)
						for (int i23 = 0; i23 < 5; i23++)
							for (int i31 = 0; i31 < 5; i31++)
								for (int i32 = 0; i32 < 5; i32++)
									for (int i33 = 0; i33 < 5; i33++)
									{
		if (ArrNum[i11] + ArrNum[i12] + ArrNum[i13] == 8 &&
			ArrNum[i21] + ArrNum[i22] + ArrNum[i23] == 8 &&
			ArrNum[i31] + ArrNum[i32] + ArrNum[i33] == 8 &&

			ArrNum[i11] + ArrNum[i21] + ArrNum[i31] == 8 &&
			ArrNum[i12] + ArrNum[i22] + ArrNum[i32] == 8 &&
			ArrNum[i13] + ArrNum[i23] + ArrNum[i33] == 8)

		{
			cout << ArrNum[i11] << "," << ArrNum[i12] << "," << ArrNum[i13] << endl;
			cout << ArrNum[i21] << "," << ArrNum[i22] << "," << ArrNum[i23] << endl;
			cout << ArrNum[i31] << "," << ArrNum[i32] << "," << ArrNum[i33] << endl;
			cout << "----------------" << endl;
		}
									}

	system("pause");
	return 0;
}
N阶魔方 2018-03-21
  • 打赏
  • 举报
回复
感觉要用递归算法写程序,暂时就这样吧 输出结果还有,结果显示不下了 ---------------- 3,2,3 4,3,1 1,3,4 ---------------- 3,3,2 1,2,5 4,3,1 ---------------- 3,3,2 1,3,4 4,2,2 ---------------- 3,3,2 1,4,3 4,1,3 ---------------- 3,3,2 2,1,5 3,4,1 ---------------- 3,3,2 2,2,4 3,3,2 ---------------- 3,3,2 2,3,3 3,2,3 ---------------- 3,3,2 2,4,2 3,1,4 ---------------- 3,3,2 3,1,4 2,4,2 ---------------- 3,3,2 3,2,3 2,3,3 ---------------- 3,3,2 3,3,2 2,2,4 ---------------- 3,3,2 3,4,1 2,1,5 ---------------- 3,3,2 4,1,3 1,4,3 ---------------- 3,3,2 4,2,2 1,3,4 ---------------- 3,3,2 4,3,1 1,2,5 ---------------- 3,4,1 1,2,5 4,2,2 ---------------- 3,4,1 1,3,4 4,1,3 ---------------- 3,4,1 2,1,5 3,3,2 ---------------- 3,4,1 2,2,4 3,2,3 ---------------- 3,4,1 2,3,3 3,1,4 ---------------- 3,4,1 3,1,4 2,3,3 ---------------- 3,4,1 3,2,3 2,2,4 ---------------- 3,4,1 3,3,2 2,1,5 ---------------- 3,4,1 4,1,3 1,3,4 ---------------- 3,4,1 4,2,2 1,2,5 ---------------- 4,1,3 1,3,4 3,4,1 ---------------- 4,1,3 1,4,3 3,3,2 ---------------- 4,1,3 1,5,2 3,2,3 ---------------- 4,1,3 2,2,4 2,5,1 ---------------- 4,1,3 2,3,3 2,4,2 ---------------- 4,1,3 2,4,2 2,3,3 ---------------- 4,1,3 2,5,1 2,2,4 ---------------- 4,1,3 3,2,3 1,5,2 ---------------- 4,1,3 3,3,2 1,4,3 ---------------- 4,1,3 3,4,1 1,3,4 ---------------- 4,2,2 1,2,5 3,4,1 ---------------- 4,2,2 1,3,4 3,3,2 ---------------- 4,2,2 1,4,3 3,2,3 ---------------- 4,2,2 1,5,2 3,1,4 ---------------- 4,2,2 2,1,5 2,5,1 ---------------- 4,2,2 2,2,4 2,4,2 ---------------- 4,2,2 2,3,3 2,3,3 ---------------- 4,2,2 2,4,2 2,2,4 ---------------- 4,2,2 2,5,1 2,1,5 ---------------- 4,2,2 3,1,4 1,5,2 ---------------- 4,2,2 3,2,3 1,4,3 ---------------- 4,2,2 3,3,2 1,3,4 ---------------- 4,2,2 3,4,1 1,2,5 ---------------- 4,3,1 1,2,5 3,3,2 ---------------- 4,3,1 1,3,4 3,2,3 ---------------- 4,3,1 1,4,3 3,1,4 ---------------- 4,3,1 2,1,5 2,4,2 ---------------- 4,3,1 2,2,4 2,3,3 ---------------- 4,3,1 2,3,3 2,2,4 ---------------- 4,3,1 2,4,2 2,1,5 ---------------- 4,3,1 3,1,4 1,4,3 ---------------- 4,3,1 3,2,3 1,3,4 ---------------- 4,3,1 3,3,2 1,2,5 ---------------- 5,1,2 1,2,5 2,5,1 ---------------- 5,1,2 1,3,4 2,4,2 ---------------- 5,1,2 1,4,3 2,3,3 ---------------- 5,1,2 1,5,2 2,2,4 ---------------- 5,1,2 2,2,4 1,5,2 ---------------- 5,1,2 2,3,3 1,4,3 ---------------- 5,1,2 2,4,2 1,3,4 ---------------- 5,1,2 2,5,1 1,2,5 ---------------- 5,2,1 1,2,5 2,4,2 ---------------- 5,2,1 1,3,4 2,3,3 ---------------- 5,2,1 1,4,3 2,2,4 ---------------- 5,2,1 1,5,2 2,1,5 ---------------- 5,2,1 2,1,5 1,5,2 ---------------- 5,2,1 2,2,4 1,4,3 ---------------- 5,2,1 2,3,3 1,3,4 ---------------- 5,2,1 2,4,2 1,2,5 ----------------

33,321

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧