zoukankan      html  css  js  c++  java
  • 2015蓝桥杯五星填数(C++C组)

    题目:五星填数



    如【图1.png】的五星图案节点填上数字:1~12,除去7和11。
    要求每条直线上数字和相等。


    如图就是恰当的填法。


    请你利用计算机搜索所有可能的填法有多少种。
    注意:旋转或镜像后相同的算同一种填法。


    请提交表示方案数目的整数,不要填写任何其它内容。


    代码:

    #include<iostream>


    using namespace std;


    int data[10] = {1,2,3,4,5,6,8,9,10,12};
    int a[10];


    bool jud();
    int ways();


    int main(int argc,char** argv){

    cout << ways();
    }


    bool jud(){

    int s1 = a[1] + a[2] + a[3] + a[4];
    int s2 = a[4] + a[6] + a[7] + a[8];
    int s3 = a[8] + a[5] + a[2] + a[0];
    int s4 = a[0] + a[3] + a[6] + a[9];
    int s5 = a[9] + a[7] + a[5] + a[1];

    if(s1 == 24 && s2 == 24 && s3 == 24 && s4 == 24 && s5 == 24){

    return true;
    }

    return false;
    }


    bool jud_temp(){

    int a1 = 0,a2 = 0,a3 = 0,a4 = 0,a5 = 0,a6 = 0,a7 = 0,a8 = 0,a9 = 0,a10 = 0;

    for(int i = 0;i < 10;i++){

    if(a[i] == 1){

    a1 = 1;

    }else if(a[i] == 2){

    a2 = 1;

    }else if(a[i] == 3){

    a3 = 1;

    }else if(a[i] == 4){

    a4 = 1;

    }else if(a[i] == 5){

    a5 = 1;

    }else if(a[i] == 6){

    a6 = 1;

    }else if(a[i] == 8){

    a7 = 1;

    }else if(a[i] == 9){

    a8 = 1;

    }else if(a[i] == 10){

    a9 = 1;

    }else if(a[i] == 12){

    a10 = 1;

    }
    }

    if(a1 == 0 || a2 == 0 || a3 == 0 || a4 == 0 || a5 == 0 || a6 == 0 || a7 == 0 || a8 == 0 || a9 ==0 || a10 == 0){

    return false;

    }else{

    return true;
    }
    }


    int ways(){

    int nums = 0;

    for(int a1 = 0;a1 < 10;a1++){

    for(int a2 = 0;a2 < 10;a2++){

    for(int a3 = 0;a3 < 10;a3++){

    for(int a4 = 0;a4 < 10;a4++){

    for(int a5 = 0;a5 < 10;a5++){

    for(int a6 = 0;a6 < 10;a6++){

    for(int a7 = 0;a7 < 10;a7++){

    for(int a8 = 0;a8 < 10;a8++){

    for(int a9 = 0;a9 < 10;a9++){

    for(int a10 = 0;a10 < 10;a10++){

    a[0] = data[a1];
    a[1] = data[a2];
    a[2] = data[a3];
    a[3] = data[a4];
    a[4] = data[a5];
    a[5] = data[a6];
    a[6] = data[a7];
    a[7] = data[a8];
    a[8] = data[a9];
    a[9] = data[a10];

    if(jud_temp()){

    if(jud()){

    nums++;
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }

    return nums;

    }



  • 相关阅读:
    软件工程--团队作业2
    软件工程——团队作业1
    软件工程第二次作业——四则运算结对编程3.0版本(最终版本)
    软件工程第一次作业补充
    软件工程第一次作业
    实验一
    Qt-关于QTreeView的一些设置
    Qt-QTreeView绘制单元格
    NX二次开发-获取集成环境下打开的part名
    NX二次开发-NX是否处于集成环境下
  • 原文地址:https://www.cnblogs.com/viplanyue/p/12700730.html
Copyright © 2011-2022 走看看