征求知识渊博之人回答,如何在空白处填入恰当的数字,使得每行、每列、每对角线的和相等?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了征求知识渊博之人回答,如何在空白处填入恰当的数字,使得每行、每列、每对角线的和相等?相关的知识,希望对你有一定的参考价值。

为了讲解方便,如图所示,将第一行中数设为B,图中最中间数设为A。

先来确定最中间数A为多少。

根据题目要求,每行、每列、每对角线的和相等,有:

21+B+9=B+A+12

A=18。

再来确定右下角的数。用方程来解。

设右下角的数为X(如图所示

)根据每对角线的和相等。

9+18+X(右)=21+18+左

得到左下角的数为X-12,则有

Ⅹ+12+(X-12)=9+18+Ⅹ

解:X=27。

Ⅹ-12=27-12=15

这样每行、每列、每对角线的和=9+18+27=54。

第一行中间数=54-21-9=24。

第一列中间数=54-21-27=6

第三列中间数=54-9-15=30。

如下图所示:

参考技术A 从上到下,从左到右依次填入24,6,18,30,27,和15。
解题思路如下:
1)充分利用已知信息。由题意可得:第一行和第二列的三个数之和相等, 并且第一行和第二列拥有一个公共格(2,3),可以算出(2,2)中的数字为21+9-12=18。
2)将(2,3)中的数字设为未知数X,可得各行各列及对角线上的三个数之和均为30+X。
3)所以(1,1)中的数字可表示为30+X-(9+18)=3+X。同理可得(3,1)中的数字为X-9。
4)由(3),第三行三个数之和可表示为3+X+12+X-9=2X+6。由(2),第三行之和又可表示为30+X,联立方程,即2X+6=30+X,解得X=24。
5)将X分别带入,求出答案从上到下依次应为24,6,18,30,27和15。
祝您生活愉快!

如何从数据库中将数字填入框中?

【中文标题】如何从数据库中将数字填入框中?【英文标题】:How can i fill numbers to the boxes from database? 【发布时间】:2018-02-28 13:39:41 【问题描述】:

我有一张桌子,我想用这样的 OrderedID 填充框;

        PlayerId   Name         OrderedID 
        4          Alex Nice        1
        6          David Cup        3
        7          John Fun         2
        10         Mary Hill        6
        11         Michal Ola       5
        12         Henry Ford       4

我怎样才能用 asp.net 做到这一点?我的代码和结果下来了。

SqlConnection yol = new SqlConnection(@"Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\Database.mdf;Integrated Security=True");
        yol.Open();
        SqlDataAdapter da = new SqlDataAdapter("Select * from players order by OrderedID", yol);
        DataTable dt = new DataTable();
        da.Fill(dt);
 int k = 1;
        for (int i = 0; i <= dt.Rows.Count; i++)
        
            StringBuilder sb = new StringBuilder();
            for (int j = 0; j < i; j++)
            
                sb.Append(dt.Rows[j][2].ToString());
                sb.Append(".   "+dt.Rows[j][1].ToString() + "   ");
                k++;
            


            treeview.Nodes.Add(new TreeNode(sb.ToString()));
        

这是我的结果。请帮帮我。

【问题讨论】:

我不明白你的问题。我看到了你目前的结果。结果应该如何? @cSteusloff 我想做类似的。 i.stack.imgur.com/vWV59.png 玩家将像金字塔一样被排序。 1、2-3、4-5-6、7-8-9-10 ..... 您正在为要添加到字符串中的每条记录向树中添加一个新节点。看起来您需要类似 a) 另一个变量来计算树的“级别”和 b) 另一个 for 循环来为每个级别构建一个新字符串然后添加一个新节点。希望这是有道理的。 【参考方案1】:

它与您的代码并不完全是一对一的,但我认为它可以适应您的情况。

我在小提琴here中做了一个类似的sn-p。

我想出的“特殊酱料”就是这个算法:

int skip = 0;
int take = 1;
int addedCount = 0;

do
    sb.AppendLine(string.Join(" ", players.Skip(skip).Take(take).Select(x => $"x.Order) x.Name")));
    addedCount += take;
    skip += take;
    take += take + 1;           

while(addedCount < players.Count);

我无法在 .NET Fiddle 中完全重现数据库,因此我的 sn-p 使用“播放器”对象,但如果您替换数据库行/列,您应该会很好。可能有更好的循环方式(这只是我的 2 分钟快速尝试),但是这应该帮助你指明方向。

【讨论】:

您的解决方案很好。我如何使用 c# 5.0 和 asp.net 来做到这一点。这行 $"x.Order) x.Name"))); 给了我错误 可以连接字符串:x =&gt; x.Order + ") " + x.Name,或者使用string.format:x =&gt; string.Format("0) 1", x.Order, x.Name") 非常感谢。工作正常:)。我现在有一个小问题。 string.Format(" 0.1 ", x.Order, x.姓名,x.ID)))); ------------------- 如果 id==link13 我该怎么做? 我不确定你到底在问什么,你能试着澄清更多吗? 我想找到其中一个生成的链接并更改样式。当我运行 HtmlAnchor findlink = (HtmlAnchor) this.FindControl("link13"); findlink.Style.Add("背景色","红色");但它给了我空引用错误。

以上是关于征求知识渊博之人回答,如何在空白处填入恰当的数字,使得每行、每列、每对角线的和相等?的主要内容,如果未能解决你的问题,请参考以下文章

数字下变频(DDC)基础知识

请将2-10这九个数字填入九宫格时每行每列及对角线的和都相等

36.有效的数独

excel求和,没数据则显示空白

leetcode 有效的数独

36. Valid Sudoku