㈠ 輸入兩個正整數m和n(m≥1,n≤1000),輸出m到n之間的所有水仙花數。
inlineintsqr(inta,intb)//a的b次方.
{
if(b==0)return1;
intc=a;
while(--b)c=c*a;
returnc;
}
intmain()
{
intmin=100,max=1000000;//在這輸入最小數和最大數.或換代碼動態輸入.
intsum=0,size,n[100];//最大支持100位的水仙花數
for(inti=min;i<=max;i++)
{
sum=i;
size=1;
while(sum/=10)size++;//sum臨時用來計算長度.
sum=0;
for(intk=0;k<size;k++)
{
n[k]=i/sqr(10,size-k-1)%10;//取出位數
sum+=sqr(n[k],size);//本來是放在另一個循環里的,為了減少代碼放在一起了.
}
if(sum==i)
printf("%d ",i);
}
}
㈡ 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+" ");
}
}
㈢ 求水仙花數,SQL
找到後,其各個數之立方和等於該數,153=1^3+5^3+3^3
,例如153水仙花數是一個三位數,即為一水仙花數,再導入sql中去。但用sql能編出來嗎?你可以用其它的語言編好
㈣ 用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
㈤ 用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)+'個數被找到!'
㈥ 使用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做的,你再加一個循環就可以了
㈦ 編寫程序,求解所有的水仙花數,要求用三層for循環嵌套來實現
pascal 程序:
var i, j, k: integer;
begin
for i:=1 to 9 do
for j:=0 to 9 do
for k:=0 to 9 do
if 100*i+10*j+k = i*i*i + j*j*j + k*k*k then
writeln(i,j,k, ' is shui xian hua shu.');
readln();
end.