当前位置:网站首页>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]所创,转载请带上原文链接,感谢
边栏推荐
- Several rolling captions based on LabVIEW
- LTM理解及配置笔记记录
- El table dynamic header
- libssl对CentOS登录的影响
- Graph node classification and message passing
- Capture bubbles? Is browser a fish?
- 程序人生|从网瘾少年到微软、BAT、字节offer收割机逆袭之路
- Commodity management system -- integrate warehouse services and obtain warehouse list
- EasyNTS上云网关设备在雪亮工程项目中的实战应用
- C++在C的基础上改进了哪些细节
猜你喜欢
随机推荐
美国大选拜登获胜!硅谷的Python开发者用这种方式调侃懂王
基于synchronized锁的深度解析
How to query by page after 10 billion level data is divided into tables?
结合阿里云 FC 谈谈我对 FaaS 的理解
1450. 在既定时间做作业的学生人数
20201108编程练习——练习3
Windows环境下如何进行线程Dump分析
5年程序员面试,常见面试问题解析
SQL第二章第三章
Glsb involves load balancing algorithm
BIOS of operating system
Git delete IML file
android studio创建平板模拟器方法
理解 OC 中 RunLoop
商品管理系统——商品新增本地保存实现部分
Why don't we use graphql? - Wundergraph
Start learning discrete mathematics again
SHOW PROFILE分析SQL语句性能开销
百亿级数据分表后怎么分页查询?
In 2020, what are the best tools for Android developers to break the cold winter?




