我刚刚安装了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),带有空格.
我该怎么做才能防止这种情况发生?
当我执行以下操作时:
alert((2053716830872415770228778006271971120334843128349550587141047275840274143041).toString());
Run Code Online (Sandbox Code Playgroud)
我得到"2.053716830872415e + 75"指数表示法.我想按原样提醒号码.我试过toFixed(),toPrecision()和toLocaleString(),他们输出相同的东西.
我怎么能做到这一点?注意:数字是一个变量,所以我无法提醒("208 ..");
我有以下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)
我究竟做错了什么?
说我有一个函数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 ×1
cycle ×1
detection ×1
function ×1
javascript ×1
mysql ×1
sql-server ×1
sqldatatypes ×1
syntax ×1