水仙花演算法
『壹』 水仙花數
水仙花數是指一個 n 位數 ( n≥3 ),它的每個位上的數字的 n 次冪之和等於它本身。(例如:1^3 + 5^3 + 3^3 = 153)
100~999之間的水仙花數:153,370,371,407
『貳』 水仙花數是什麼
水仙花數是一個三位數,其各位上數的立方和等於這個數,例如153,13+53+33=153,為什麼稱為
「水仙花數」,因為是三個數的三次冪,與水仙花的花朵數吻合。
#include<stdio.h>
intmain()
{
inti,j,k,n;
printf("水仙花數是:");
for(n=100;n<=999;n++)
{
i=n/100;
j=n%100/10;
k=n%10;
if(n==i*i*i+j*j*j+k*k*k)//=改為==
//printf("%d",n);
//printf("");//以上兩句合並為下面這一句,否則會有大量空格
printf("%d",n);
}
return0;}
『肆』 水仙花數的演算法
Private Sub Form_Click()
Dim a As Long, b As Long, c As Long, x As Long, y As Long, z As Long, t As Long
t = a * 100 + b * 10 + c
For a = 1 To 9
For b = 1 To 9
For c = 1 To 9
z = c ^ 3
y = b ^ 3
x = a ^ 3
if t = x + y + z then
Print a
Print b
Print c
Next c
Next b
Next a
End Sub
『伍』 設計演算法:水仙花數問題
#include <stdio.h>
int main(void)
{
int a,b,c;
for(a=1;a<=9;a++)
for(b=0;b<=9;b++)
for(c=0;c<=9;c++)
if(100*a+10*b+c==a*a*a+b*b*b+c*c*c)
printf("%d%d%d\n",a,b,c);
return 0;
}
『陸』 水仙花數計算方法是什麼
水仙花數計算方法:是指一個 n 位數 ( n≥3 ),它的每個位上的數字的 n 次冪之和等於它本身。(例如:1^3 + 5^3 + 3^3 = 153)
『柒』 c語言水仙花數
#include <stdio.h>
int main()
{
int start, end, i = 0, a, b, c, size = 0;
while (scanf("%d %d", &start, &end) == 2)
{
for (i = start; i <= end; i++)
{
a = i / 100;
b = i / 10 % 10;
c = i % 10;
//total = pow(c, 3) + pow(a, 3) + pow(b, 3);
if ((a*a*a + b*b*b + c*c*c) == i) //滿足水仙花條件
{
if (size == 0) //size=0輸出第一個水仙花數
{
printf("%d", i);
}
else //size++輸出第二。。第n個水仙花數
{
printf(" %d", i);
}
size++; //個數++;
}
}
if (size == 0) //范圍內個數為0,則說明沒有滿足條件的
{
printf("no");
}
printf(" ");
}
return 0;
}
(7)水仙花演算法擴展閱讀:
需要注意的地方:
1.將n整除以100,得出n在百位上的數字hun。
2.將(n-i*100)整除以10(或將n先整除以10再對10求模n/10%10),得出n在十位上的數字ten。
3.將n對10取余,得出n在個位上的數字ind。
4.求得這三個數字的立方和是否與其本身相等,若相等,則該數為水仙花數。
網路-水仙花數
『捌』 水仙花數C語言
for(n=100;n<=999;n++) ; 把這個分號去掉就可 以了
『玖』 java中求解水仙花數的演算法思想是什麼
水仙花數是指一個 n 位數 ( n≥3 ),它的每個位上的數字的 n 次冪之和等於它本身。
從上面的定義可以看出,只要將給出的數字各個位數的數字分解出來,然後把個數字的3次方相加與原數相比是否相等即可判斷出是否為水仙花數,給你一段源碼,是求100~1000內的水仙花數,有注釋,希望對你有幫助:
public class Wflower {
public static void main(String[] args) {
int a=0,b=0,c=0;
System.out.println("水仙花數是:");
for (int i = 100; i < 1000; i++) //遍歷所有3位數
{
a = i/100; //獲取3位數中百位的數
b=i%100/10; //獲取3位數中十位的數
c=i%100%10; //獲取3位數中個位的數
a = a * a * a; //計算第一位數的立方
b = b * b * b; //計算第二位數的立方
c = c * c * c; //計算第3位數的立方
if ((a + b + c) == i) //如果符合水仙花數
System.out.print(" "+i);
}
}
}
『拾』 水仙花數(演算法就行)代碼隨意
拜託,50位的你要電腦怎樣的速度啊!
我編了個js的,運算6位的,就要了6-7秒的時間,運算50位,鐵定死機了,代碼再怎麼優化,需要運算的次數或是遍歷位數是一定的,這是高度運算量的編程,我沒找到好的演算法.先貼給你我的代碼.
剛剛修改過,再貼一遍!
我添加了部分注釋,優化了一下代碼,加了段求個數的代碼,再貼給你一下
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>無標題文檔</title>
<script type="text/javascript">
function fun(){
//取得參量位數
var valnum=parseInt(document.frm.input.value);
//求得符合參量位數的最大值和最小值
var highnum=Math.pow(10,valnum)-1;
var lownum=Math.pow(10,valnum-1);
//輸出隊列的組成部分
var output="共有個數:",res_str="";
//a為i分解為數組的下腳值,num為符合規則的水仙花的個數
var a=0,num=0;
//遍歷所有符合參量位數的數
for(i=lownum;i<=highnum;i++){
//res為水仙花數規則值,即n位的數的每位數的n次冪的和,預置為0
var res=0;
//分解出當前i的每位數並存如數組
var new_i=i.toString().split("");
for(a=0;a<=valnum-1;a++){
//求得水仙花數規則值
res=Math.pow(parseInt(new_i[a]),valnum)+res;
}
//判斷符合水仙花數的個數,如符合則將水仙花數並入輸出隊列
if(res==i){
num++;
res_str=res_str+"<br>"+res;
}
}
//輸出隊列
if(valnum<3){output="你輸入了無效位數!";}
else{output=output+num+res_str;}
//輸出
document.getElementById("divnum").innerHTML=output;
}
</script>
</head>
<body><form name="frm">
<label>請輸入水仙花的位數(N>=3):</label><input type="text" name="input" value="">
<input value="運算" type="button" onclick="fun()" />
</form>
<div id="divnum" style=" position:absolute;left:100px;width:200px;top:100px;"></div>
</body>
</html>
以上另存為html文件,用瀏覽器打開就行.
另:網路附有其他語言的編程方法,我看了一下,好像就只是算100-999的固定位數的水仙花數,沒有提供可變位數參量.我補充了一下那個詞條.你可以借鑒一下.
http://ke..com/view/152077.htm