小编Sup*_*ewd的帖子

SQL Server查询结果末尾的空白空间

我刚刚安装了Microsoft SQL Server 2008 R2以使用LINQ to SQL进行测试.

我有一个表有一列nchar(20)和两行:'123'和'Test'.

如果我查询该表中的所有行并用"'"包装每个值,我会得到以下内容:

'123 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ' ( _ is a space)

'Test _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ' ( _ is a space)
Run Code Online (Sandbox Code Playgroud)

SQL Server似乎填充了未使用的空间(因为列是一个20字节的nchar),带有空格.

我该怎么做才能防止这种情况发生?

sql-server sql-server-2008 sqldatatypes

7
推荐指数
1
解决办法
6030
查看次数

JavaScript中的大字符串

当我执行以下操作时:

alert((2053716830872415770228778006271971120334843128349550587141047275840274143041).toString());
Run Code Online (Sandbox Code Playgroud)

我得到"2.053716830872415e + 75"指数表示法.我想按原样提醒号码.我试过toFixed(),toPrecision()和toLocaleString(),他们输出相同的东西.

我怎么能做到这一点?注意:数字是一个变量,所以我无法提醒("208 ..");

javascript number-formatting

7
推荐指数
1
解决办法
5338
查看次数

变量声明中的MySQL语法错误

我有以下MySQL查询:

DELIMITER //
CREATE PROCEDURE InsertResult (IN winnerID INT, IN loserID INT)
BEGIN
    INSERT INTO KomperResult (WinnerID, LoserID) VALUES (@winnerID, @loserID);
    DECLARE winnerScore, loserScore INT;
    SELECT Score INTO @winnerScore FROM KomperPerson WHERE ID = @winnerID;
    SELECT Score INTO @loserScore FROM KomperPerson WHERE ID = @loserID;
    IF (@loserScore >= @winnerScore) THEN UPDATE KomperPerson SET Score = @loserScore + 1 WHERE ID = @winnerID; END IF;
END//
Run Code Online (Sandbox Code Playgroud)

我收到错误:

DECLARE winnerScore, loserScore INT;
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

mysql syntax stored-procedures variable-declaration

6
推荐指数
1
解决办法
2822
查看次数

循环检测算法

说我有一个函数f:

f(0) = 0
f(i) = (i - 1) % 4
Run Code Online (Sandbox Code Playgroud)

F(0..12):

0 0 1 2 3 0 1 2 3 0 1 2 3
Run Code Online (Sandbox Code Playgroud)

我想找到循环开始和循环长度,分别为1和4.乌龟和野兔算法适用于迭代函数,但我没有迭代函数.是否有其他算法可以使用非迭代函数,或者可以为此修改龟和野兔算法?

编辑:

使用Jason S的答案,我设法提出了这个,这似乎是有效的:

public static Tuple<int, int> ModifiedTortoiseHare(Func<int, int> f, int x0 = 0, int checks = 4)
{
    for (; ; x0++)
    {
        int lam = 0, tortoise, hare;

        do
        {
            lam++;
            tortoise = f(x0 + lam);
            hare = f(x0 + 2 * lam);
        } while (tortoise != hare);

        int mu = -1; …
Run Code Online (Sandbox Code Playgroud)

algorithm function cycle detection floyd-cycle-finding

0
推荐指数
1
解决办法
1752
查看次数