• 差三角


    标题:计算差三角

    仔细观察下面的数字组成的三角形:

        3
       1 4
      5 6 2

    看出什么特征吗?
    首先,它包含了1~6的连续整数。
    重要的是:每个数字都是其下方相邻的两个数字的差(当然是大数减去小数)
    满足这样特征的三角形,称为:差三角。

    你的任务是找出1~15的整数组成的一个更大的差三角。其形如:

          ?
         4 ?
        ? ? ?
       * ? ? ?
      ? ? ? ? ?

    其中,只给出了一个确定的数字:4
    请确定出“*” 代表的是哪个一个数字。

    直接提交该数字,不要提交多余的内容。

    //暴力求解
    #include<stdio.h>
    #include<math.h>
    #include<string.h>
    int a[5][6];
    int v[16];
    
    int fun()
    {
        int i,j;
        for(i=0;i<5;i++)
            for(j=0;j<=i;j++)
                if(!v[a[i][j]])
                    v[a[i][j]]=1;
                else
                    return 0;
                if(a[1][0]==4)
                {
                    for(i=0;i<5;i++)
                    {
                        for(j=0;j<=i;j++)
                            printf("%d ",a[i][j]);
                        printf("\n");
                    }
                    return a[3][0];
                }
                return 0;
    }
    
    void t()
    {
        a[3][0]=abs(a[4][0]-a[4][1]);
        a[3][1]=abs(a[4][1]-a[4][2]);
        a[3][2]=abs(a[4][2]-a[4][3]);
        a[3][3]=abs(a[4][3]-a[4][4]);
    
        a[2][0]=abs(a[3][0]-a[3][1]);
        a[2][1]=abs(a[3][1]-a[3][2]);
        a[2][2]=abs(a[3][2]-a[3][3]);
    
        a[1][0]=abs(a[2][0]-a[2][1]);
        a[1][1]=abs(a[2][1]-a[2][2]);
    
        a[0][0]=abs(a[1][0]-a[1][1]);
    }
    
    
        
    int main()
    {
        int i,j,u,f,k,g;
        for(i=1;i<=15;i++)
        {
            for(j=1;j<=15;j++)
            {
                for(k=1;k<=15;k++)
                {
                    for(u=1;u<=15;u++)
                    {
                        for(f=1;f<=15;f++)
                        {
                            a[4][0]=i;
                            a[4][1]=j;
                            a[4][2]=k;
                            a[4][3]=u;
                            a[4][4]=f;
                            t();
                            memset(v,0,sizeof(v));
                            if(g=fun())
                                printf("%d\n",g);
                        }
                    }
                }
            }
        }
        return 0;
    5
    4 9
    7 11 2
    8 1 12 10
    6 14 15 3 13
    8
    
    
    
    
    }
  • 相关阅读:
    扩展欧几里得算法
    poj-3094-quicksum
    (floyd)佛洛伊德算法
    poj-3660-cows contest(不懂待定)
    poj-1056-IMMEDIATE DECODABILITY(字典)
    delete与delete[]的区别
    poj-1046-color me less
    SqlParameter 使用
    VS2010中出现无法嵌入互操作类型(转)
    fastreport代码转
  • 原文地址:https://www.cnblogs.com/xiaofanke/p/3014397.html
Copyright © 2020-2023  润新知