sql水仙花
❶ sql server中把100-999之间所有水仙花数求出来
153、370、371、407
貌似只有你这一种写法,因为公式单一。。。
我JAVA里也就这样写。。。
必须声明3个
public class shuixianhua
{
public static void main(String[] args){
for(int i=1; i<=9; i++)
for(int j=0; j<=9; j++)
for(int k=0; k<=9; k++)
if(i*i*i+j*j*j+k*k*k == 100*i+10*j+k)
System.out.print(i*100+j*10+k+" ");
}
}
❷ 编写一个计算机程序,找出100-999之间的所有“水仙花数”。
C语言
#include<stdio.h>
void main()
{
int i,j,k,n;
for(i=1;i<10;i++)
for(j=0;j<10;j++)
for(k=0;k<10;k++)
{
n=i*100+j*10+k;
if((i*100+j*10+k)==((i*i*i)+(j*j*j)+(k*k*k)))
printf("水仙花数为:%d\n",n);
}
}
❸ 用SQL语句 编写水仙花数
declare @a int,@b int,@c int,@s int,@num int
set @a=1
set @num=0
while @a<=9
begin
set @b=0
while @b<=9
begin
set @c=0
while @c<=9
begin
if power(@a,3)+power(@b,3)+power(@C,3)=@a*100+@b*10+@c
begin
set @s=@a*100+@b*10+@c
print str(@s,3,0)+'是水仙花数.'
set @num=@num+1
end
set @c=@c+1
end
set @b=@b+1
end
set @a=@a+1
end
print str(@num,3,0)+'个数被找到!'
❹ 用sql语句编写程序,输出所有的水仙花数,并存为脚本文件。
问题描述不够精确,SQL是哪个数据库的?存为脚本文件是哪种脚本?
ORACLE/MSSQL/SYBASE/MySQL等语法均有不同,符合标准的SQL干不了这个事儿。
❺ sql算数问题
按你的理解 这个是要输出什么结果呢,你上面的代码就是输出的 0 0 2 2
❻ SQL代码求助,看详情,在线等
declare@iint,@mint,@oint
set@i=2
while@i<=100
begin
set@m=2
set@o=0
while@m<=@i/2
begin
if@i%@m=0
begin
set@o=@o+1
end
set@m=@m+1
end
if@o=0
begin
print@i
end
set@i=@i+1
end
/*
2
3
5
7
11
13
17
19
23
29
31
37
41
43
47
53
59
61
67
71
73
79
83
89
97
*/
declare@iint,@jint,@kint,@nint
set@i=1
while@i<10
begin
set@j=0
while@j<10
begin
set@k=0
while@k<10
begin
set@n=@i*100+@j*10+@k
ifpower(@i,3)+power(@j,3)+power(@k,3)=@n
begin
print@n
end
set@k=@k+1
end
set@j=@j+1
end
set@i=@i+1
end
/*
153
370
371
407
*/
❼ 求水仙花数,SQL
找到后,其各个数之立方和等于该数,153=1^3+5^3+3^3
,例如153水仙花数是一个三位数,即为一水仙花数,再导入sql中去。但用sql能编出来吗?你可以用其它的语言编好
❽ 求水仙花数,SQL
declare @n as int,@b as int,@s as int,@g as int
set @n=100
while @n<1000
begin
set @b=cast(substring(cast(@n as varchar(3)),1,1) as int)
set @s=cast(substring(cast(@n as varchar(3)),2,1) as int)
set @g=cast(substring(cast(@n as varchar(3)),3,1) as int)
if power(@b,3)+power(@s,3)+power(@g,3)=@n
begin
print @n
end
set @n=@n+1
end
---------------------------------------
运行结果是:
153
370
371
407
❾ 用sql语句,编写程序输出所有的水仙花数。帮我看看下面程序有什么问题,为什么得不到结果
其实你已经写完了,不过你忘了一件重要的事,重置循环用的变量。
下面是我帮你改过的,只加了两行,用注释帮你标明了,仔细看一下吧。
begin
declare@gint,@sint,@bint,@numint
set@g=0
set@s=0
set@b=1
while(@b<=9)
begin
set@s=0--这行是我加的,重置十位从0开始
while(@s<=9)
begin
set@g=0--这行是我加的,重置个位从0开始
while(@g<=9)
begin
set@num=@g+@s*10+@b*100
if(@num=power(@g,3)+power(@s,3)+power(@b,3))
print@num
set@g=@g+1
end
set@s=@s+1
end
set@b=@b+1
end
end
下面是执行结果
153
370
371
407
❿ 使用T-SQL语言统计100-1000之间的水仙花数个数并打印输出.
declare@numint
set@num=99
declare@n1int--第一位数
declare@n2int--第二位数
declare@n3int--第三位数
declare@nint--N次方
declare@resultint--次方相加的结果
set@n=3
while@num<=1000
begin
set@num=@num+1
set@n1=convert(int,substring(convert(varchar(10),@num),1,1))
set@n2=convert(int,substring(convert(varchar(10),@num),2,1))
set@n3=convert(int,substring(convert(varchar(10),@num),3,1))
set@result=power(@n1,@n)+power(@n2,@n)+power(@n3,@n)
if@result=@num
begin
print'结果'+convert(varchar(20),@result)+'['+convert(varchar(20),@num)+']'+'N:'+convert(varchar(20),@n)
end
end
现在我是把n设置成固定数值3做的,你再加一个循环就可以了