当前位置:网站首页>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]所创,转载请带上原文链接,感谢
边栏推荐
- 推荐系统,深度论文剖析GBDT+LR
- 理解Task和和async await
- OpenGL ES 框架详细解析(八) —— OpenGL ES 设计指南
- [QT] subclass qthread to realize multithreading
- Recommendation system, in-depth paper analysis gbdt + LR
- Chrome浏览器引擎 Blink & V8
- [design pattern] Chapter 4: Builder mode is not so difficult
- 2 normal mode
- GitHub 上适合新手的开源项目(Python 篇)
- Android 解决setRequestedOrientation之后手机屏幕的旋转不触发onConfigurationChanged方法
猜你喜欢
随机推荐
Chrome browser engine blink & V8
How to query by page after 10 billion level data is divided into tables?
基于LabVIEW实现的几种滚动字幕
抢球鞋?预测股市走势?淘宝秒杀?Python表示要啥有啥
ThinkPHP门面源码解析
What details does C + + improve on the basis of C
GDI 及OPENGL的区别
搭建全分布式集群全过程
As a user, you can't get rid of the portrait!
git 删除iml文件
Detailed analysis of OpenGL es framework (8) -- OpenGL es Design Guide
range_sensor_layer
Apache Iceberg 中三种操作表的方式
Capture bubbles? Is browser a fish?
Windows环境下如何进行线程Dump分析
1486. Array XOR operation
捕获冒泡?难道浏览器是鱼吗?
Sublime text3 插件ColorPicker(调色板)不能使用快捷键的解决方法
LTM理解及配置笔记记录
解决python调用 ffmpeg时 ‘ffmpeg‘ 不是内部或外部命令,也不是可运行的程序