当前位置:网站首页>SQL statement to achieve the number of daffodils
SQL statement to achieve the number of daffodils
2020-11-09 10:51:00 【http://www.bing.com/searc....tin-round+rock+texas】
SQL Statement to achieve the number of daffodils
" Narcissistic number ", So-called " Narcissistic number " A three digit number , The sum of its cubes is equal to the number itself . for example :370 It's a " Narcissistic number ", because 370=3 The third power of +7 The third power of +0 The third power of
Implementation method
In this paper, two methods are used to calculate the number of Narcissus
Method 1
The first one uses a layer of while loop , from 100-1000 Traverse , Take out its bit 、 ten 、 A hundred digit number , After the calculation of the third power, add it and compare it with the original figure , Equal to print out .
It takes out a bit 、 ten 、 The hundred bit method requires built-in functions :CAST function
CAST Function is used to explicitly convert an expression of one data type to another , Such as :
cast(substring(cast(@n as varchar(3)),1,1) as int
The statement will int Type variable n First change it to varchar( Variable length string ) type , recycling substring The function is taken out from 1 It starts with a character 1 Characters , That is, in the calculation of the number of Narcissus is taken out 3 Hundreds of digits , Finally, we will transform it into int Type variable .
The whole code of method one is as follows :
declare @n int,@x as int,@y as int,@z as int
set @n=100
while @n<1000
begin
set @x=cast(substring(cast(@n as varchar(3)),1,1) as int)
set @y=cast(substring(cast(@n as varchar(3)),2,1) as int)
set @z=cast(substring(cast(@n as varchar(3)),3,1) as int)
if power(@x,3)+power(@y,3)+power(@z,3)=@n
begin
print @n
end
set @n=@n+1
end
use x,y,z Store their hundreds separately 、 Ten and one
Method 2
Method two is the method I used at the beginning , That is to say, the same definition x,y,z Store its hundreds 、 Ten and one , adopt 3 individual while loop ,x from 1-9 Traverse ,y、z Respectively from the 0-9 Traverse , adopt x,y,z The sum of the third power and 100x+10y+z Compare the number of daffodils .
And in the beginning error The implementation code of is as follows :
declare @x int, @y int,@z int,@m int
set @x=1
set @y=0
set @z=0
while @x<10
begin
while @y<10
begin
while @z<10
begin
if power(@x,3)+power(@y,3)+power(@z,3)=(@x*100+@y*10+@z)
begin
select @m=@x*100+@y*10+@z
print @m
end
set @z=@z+1
end
set @y=@y+1
end
set @x=@x+1
end
adopt sql server After executing the code, only the command has successfully completed the statement , No output , The code is wrong
After inspection , It turns out that there may be a problem with the cycle , Then use the following code to test :
declare @x int, @y int,@z int,@m int
set @x=1
set @y=0
set @z=0
while @x<10
begin
while @y<10
begin
while @z<10
begin
print @z
set @z=@z+1
end
set @y=@y+1
end
set @x=@x+1
end
It is found that only 10 Time

The reason for the discovery is while Nested loop outer loop variable cannot enter inner loop , therefore take set @y And set @z Before the statement is placed in the inner loop
Revised code ( correct ) as follows :
declare @x int, @y int,@z int,@m int
set @x=1
while @x<10
begin
set @y=0
while @y<10
begin
set @z=0
while @z<10
begin
if power(@x,3)+power(@y,3)+power(@z,3)=(@x*100+@y*10+@z)
begin
select @m=@x*100+@y*10+@z
print @m
end
set @z=@z+1
end
set @y=@y+1
end
set @x=@x+1
end
The output is the same as that of method 1

Finally get 153,370,371,407 Count the daffodils
版权声明
本文为[http://www.bing.com/searc....tin-round+rock+texas]所创,转载请带上原文链接,感谢
边栏推荐
猜你喜欢

2. Introduction to computer hardware

使用CopyMemory API出现 尝试读取或写入受保护的内存。这通常指示其他内存已损坏。

开源ERP招聘了

For the first time open CSDN, this article is for the past self and what is happening to you

JT-day09

In 2020, what are the best tools for Android developers to break the cold winter?

Rainbow sorting | Dutch flag problem

《内网安全攻防》配套视频 之 利用PS查询域内信息

Recommendation system, in-depth paper analysis gbdt + LR

Composition - API
随机推荐
Windows环境下如何进行线程Dump分析
Oschina plays disorderly on Monday
你不好奇 CPU 是如何执行任务的吗?
LTM understanding and configuration notes
3.你知道计算机是如何启动的吗?
重新开始学习离散数学
Log analysis tool - goaccess
Service grid is still difficult - CNCF
for与for...in、for Each和map和for of
结合阿里云 FC 谈谈我对 FaaS 的理解
程序人生|从网瘾少年到微软、BAT、字节offer收割机逆袭之路
基于LabVIEW实现的几种滚动字幕
1486. Array XOR operation
【译】npm developer guide
美国大选拜登获胜!硅谷的Python开发者用这种方式调侃懂王
商品管理系统——商品新增本地保存实现部分
Mac terminal oh my Zsh + solarized configuration
无法启动此程序,因为计算机中丢失 MSVCP120.dll。尝试安装该程序以解决此问题
libssl对CentOS登录的影响
SQL语句实现水仙花数求取