当前位置:网站首页>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]所创,转载请带上原文链接,感谢
边栏推荐
- Start learning discrete mathematics again
- Several rolling captions based on LabVIEW
- EasyNTS上云网关设备在雪亮工程项目中的实战应用
- 捕获冒泡?难道浏览器是鱼吗?
- Dynamo: a typical distributed system analysis
- MapStruct 解了对象映射的毒
- 商品管理系统——商品新增本地保存实现部分
- 向北京集结!OpenI/O 2020启智开发者大会进入倒计时
- BIOS of operating system
- Shoes? Forecasting stock market trends? Taobao second kill? Python means what you want
猜你喜欢
失业日志 11月5日
Talk about my understanding of FAAS with Alibaba cloud FC
From the practice, this paper discusses the problems caused by the inconsistent design of ruby syntax.
彩虹排序 | 荷兰旗问题
Windows环境下如何进行线程Dump分析
The file size uploaded by WordPress import exceeds php.ini Upload defined in_ max_ Filesize value -- & gt; solution.
JT-day09
基于synchronized锁的深度解析
Python零基础入门教程(01)
2.计算机硬件简介
随机推荐
Gather in Beijing! Openi / O 2020 Qizhi Developer Conference enters countdown
Program life: from Internet addicts to Microsoft, bat and byte offer harvesters
The file size uploaded by WordPress import exceeds php.ini Upload defined in_ max_ Filesize value -- & gt; solution.
抢球鞋?预测股市走势?淘宝秒杀?Python表示要啥有啥
手写数字图片识别-卷积神经网络
Recommended tools for Mac
The whole process of building a fully distributed cluster
Mac 必备优质工具推荐
Android 解决setRequestedOrientation之后手机屏幕的旋转不触发onConfigurationChanged方法
050_ object-oriented
配置交换机Trunk接口流量本地优先转发(集群/堆叠)
android studio创建平板模拟器方法
Recommendation system, in-depth paper analysis gbdt + LR
典型分布式系统分析:Dynamo
Depth analysis based on synchronized lock
Oschina plays disorderly on Monday
从实践谈 Ruby 语法上的几个设计不一致带来的问题。
彩虹排序 | 荷兰旗问题
LTM理解及配置笔记记录
图节点分类与消息传递 - 知乎