定義一個接口,計(jì)算正方體和長方體的體積,并寫一個測試類進(jìn)行測試
-
正在考試,來高手給代碼.還有一道題. 打印出所有的“水仙花數(shù)”,所謂“水仙花數(shù)”是指一個三位數(shù),其各位數(shù)字立方和等于該數(shù)本身。例如:153是一個“水仙花數(shù)”,因?yàn)?53=1的三次方加5的三次方再加3的三次方的和.
全部評論(1條)
-
- yao6184420 2010-06-30 00:00:00
- 三位的水仙花數(shù)共有4個:153,370,371,407; 四位的水仙花數(shù)共有3個:1634,8208,9474; 五位的水仙花數(shù)共有3個:54748,92727,93084; 六位的水仙花數(shù)只有1個:548834; 七位的水仙花數(shù)共有4個:1741725,4210818,9800817,9926315; 八位的水仙花數(shù)共有3個:24678050,24678051,88593477 …… …… 使用高精度計(jì)算,可以得到超過INT類型上限的水仙花數(shù): 5: 93084 5: 92727 5: 54748 6: 548834 7: 9800817 7: 4210818 7: 1741725 7: 9926315 8: 24678050 8: 24678051 8: 88593477 9: 146511208 9: 912985153 9: 472335975 9: 534494836 10: 4679307774 11: 32164049650 11: 40028394225 11: 42678290603 11: 49388550606 11: 32164049651 11: 94204591914 11: 44708635679 11: 82693916578 14: 28116440335967 16: 4338281769391370 16: 4338281769391371 17: 35875699062250035 17: 21897142587612075 17: 35641594208964132 19: 1517841543307505039 19: 3289582984443187032 19: 4929273885928088826 19: 4498128791164624869 20: 63105425988599693916 21: 449177399146038697307 21: 128468643043731391252 23: 27907865009977052567814 23: 35452590104031691935943 23: 27879694893054074471405 23: 28361281321319229463398 23: 21887696841122916288858 24: 174088005938065293023722 24: 239313664430041569350093 24: 188451485447897896036875 (為環(huán)保起見,24位以上的水仙花數(shù)略) 理論上,Z大的水仙花數(shù)不超過34位。 [編輯本段]求取方法(非高精度) 以下為在各種編程語言中實(shí)現(xiàn)求取水仙花數(shù)的方法(非高精度)。 ◆PHP “水仙花數(shù)”實(shí)現(xiàn)代碼: <?php for($i=100;$i<1000;$i++){ $a=intval($i/100); $b=intval($i/10)%10; $c=$i%10; if(pow($a,3)+pow($b,3)+pow($c,3)==$i){ echo $i."\t"; } } ?> ◆C 語言的"水仙花數(shù)"實(shí)現(xiàn)代碼: #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; } ◆PASCAL 實(shí)現(xiàn)代碼: program shuixianhuashu; var a,b,c:integer; begin for a:=1 to 9 do for b:=0 to 9 do for c:=0 to 9 do if a*a*a+b*b*b+c*c*c=100*a+10*b+c then writeln(100*a+10*b+c); end. 或: program sxh; var a,b,c,d:integer; begin for a:=100 to 999 do begin b:=a mod 10; c:=a mod 100 div 10; d:=a div 100; if b*b*b+c*c*c+d*d*d=a then writeln(a); end; end.◆Visual Basic 的"水仙花數(shù)"實(shí)現(xiàn)代碼: Private Sub Form_Click() Dim a, b, c As Integer 'a(個)b(十)c(百) For a = 0 To 9 For b = 0 To 9 For c = 1 To 9 If a ^ 3 + b ^ 3 + c ^ 3 = a + 10 * b + 100 * c Then MsgBox 100 * c + 10 * b + a End If Next c Next b Next a End Sub◆FORTRAN 的"水仙花數(shù)"實(shí)現(xiàn)代碼: WRITE(*,30) DO 10 K=100,999 IA=K/100 IB=MOD(K,100)/10 IC=MOD(K,10) IF(K.NE.IA**3+IB**3+IC**3) GOTO 10 WRITE(*,20)K, IA,IB,IC 10 CONTINUE 20 FORMAT(5X,4I4) 30 FORMAT(5X,18HN=I**3+J**3+K**3) STOP END ◆C++ 編譯器上的水仙花數(shù)實(shí)現(xiàn)代碼 #include<iostream> using namespace std; int main() {int a,q,w,e; for(a=100;a<1000;++a) {q=a/100; w=(a-q*100)/10; e=(a-q*100-w*10); if(a==q*q*q+w*w*w+e*e*e) cout<<a<<"是水仙花數(shù)"<<endl;}; return 0; } ◆pyhon 中實(shí)現(xiàn)的代碼 for i in range(1,10): for j in range(0,10): for k in range(0,10): if i*100+j*10+k==i*i*i+j*j*j+k*k*k: print i*100+j*10+k, ◆Java 中實(shí)現(xiàn)的代碼 public class shuixianhuashu { public static void main(String[] args) { for(int i=100; i<1000; i++){ int a = i/100; int b = i/10%10; int c = i%10; if(Math.pow(a,3)+Math.pow(b,3)+Math.pow(c,3)==i) System.out.println(i+"是水仙花數(shù)"); } } } ◆C# ASP.NET 中的實(shí)現(xiàn)代碼 for (int i = 100; i < 1000; i++) { int bai = 0; int shi = 0; int ge = 0; int baiyushu = 0; bai = i / 100; baiyushu = i % 100; shi = baiyushu / 10; ge = baiyushu % 10; if (i == bai * bai * bai + shi * shi * shi + ge * ge * ge) { Response.Write("水仙花數(shù):" + i + "<br>"); } } ◆javascript +html 實(shí)現(xiàn)可變位數(shù)的運(yùn)算: <!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>無標(biāo)題文檔</title> <script type="text/javascript"> function fun(){ //取得參量位數(shù) var valnum=parseInt(document.frm.input.value); //求得符合參量位數(shù)的Z大值和Z小值 var highnum=Math.pow(10,valnum)-1; var lownum=Math.pow(10,valnum-1); //輸出隊(duì)列的組成部分 var output="共有個數(shù):",res_str=""; //a為i分解為數(shù)組的下腳值,num為符合規(guī)則的水仙花的個數(shù) var a=0,num=0; //遍歷所有符合參量位數(shù)的數(shù) for(i=lownum;i<=highnum;i++){ //res為水仙花數(shù)規(guī)則值,即n位的數(shù)的每位數(shù)的n次冪的和,預(yù)置為0 var res=0; //分解出當(dāng)前i的每位數(shù)并存如數(shù)組 var new_i=i.toString().split(""); for(a=0;a<=valnum-1;a++){ //求得水仙花數(shù)規(guī)則值 res=Math.pow(parseInt(new_i[a]),valnum)+res; } //判斷符合水仙花數(shù)的個數(shù),如符合則將水仙花數(shù)并入輸出隊(duì)列 if(res==i){ num++; res_str=res_str+"<br>"+res; } } //輸出隊(duì)列 if(valnum<3){output="你輸入了無效位數(shù)!";} else{output=output+num+res_str;} //輸出 document.getElementById("divnum").innerHTML=output; } </script> </head> <body><form name="frm"> <label>請輸入水仙花的位數(shù)(N>=3):</label><input type="text" name="input" value=""> <input value="運(yùn)算" type="button" onclick="fun()" /> </form> <div id="divnum" style=" position:absolute;left:100px;width:200px;top:100px;"></div> </body> </html> ◆asp 中實(shí)現(xiàn)的代碼 <% dim a,b,c,d,m,n,z i=1 for i=100 to 999 a=mid(i,1,1) b=mid(i,2,1) c=mid(i,3,1) d=a*a*a m=b*b*b n=c*c*c z=d+m+n if z=i then response.write z & "<br>" end if next %> ◆Visual FoxPro 用表單實(shí)現(xiàn)法(只計(jì)3位) (1)創(chuàng)建表單Form1并添加文本框Text1與命令按鈕Command1 (2)修改Command1的Caption屬性為“計(jì)算并顯示” (3)為Form1添加方法sxh (4)修改方法sxh代碼如下 para x x1=int(x%10) x2=int(x/10)%10 x3=int(x/100)%100 if x=x1^3+x2^3+x3^3 return .t. else return .f. endif (5)為Command1的Click事件編寫如下的事件代碼: thisform.currentx=thisform.width/2 thisform.currenty=thisform.height/2 thisform.print("水仙花數(shù)是:") for m=100 to 999 thisform.text1.value=m sure=thisform.sxh(m) if sure=.t. thisform.print(str(m,4)+space(3)) inkey(0.5) endif for 延遲=1 to 20000 yiru=2008610029 endfor endfor this.enabled=.f. QBASIC 水仙花數(shù)1—999999之間 For i = 1 To 999999 a = Mid(i, 1, 1) b = Mid(i, 2, 1) c = Mid(i, 3, 1) d = Mid(i, 4, 1) If i = a ^ 4 + b ^ 4 + c ^ 4 + d ^ 4 Then Print i; Next i PB 實(shí)現(xiàn)的方法(只計(jì)3位數(shù)) int s,a,b,c for s=100 to 999 a=integer(s/100) b=integer((s - a*100)/10) c=s - integer(s/10)*10 if s=a^3+b^3+c^3 then messagebox("",s) end if next ◆ActionScript實(shí)現(xiàn)的方法(只計(jì)3位數(shù)) var n:int; var m:int; for (var i:int=1; i<=9; i++) { for (var j:int=1; i<=9; j++) { for (var k:int=1; i<=9; k++) { m=i*100+j*10+k; if (m==i*i*i+j*j*j+k*k*k) { n++; trace(m); } } } } ◆Delphi實(shí)現(xiàn)的方法(100-999) var a,b,c,d:integer; begin for a:=100 to 999 do begin b:=a div 100; c:=a div 10 mod 10; d:=a mod 10; if b*b*b+c*c*c+d*d*d=a then memo1.Lines.Add(inttostr(a)) end end; ◆MATLAB中實(shí)現(xiàn)的方法(100-999) for m=100:999 m1=fix(m/100); m2=rem(fix(m/10),10); m3=rem(m,10); if m==m1^3+m2^3+m3^3 disp(m) end end 或者: ◆Mathematica實(shí)現(xiàn)方法(可現(xiàn)不定位數(shù)解) n=Input["請輸入大于2的自然數(shù)n:"]; For[i=10^(n-1),i<10^n-1,i++, If[Total[IntegerDigits[i]^IntegerLength[i]]==i, Print[i]]] ◆添加一種C++的算法 #include<iostream> #include<cmath> using namespace std; void main() {int a,b,c,e,f,g; double d; b=1; f=0; a=100; e=0; c=g=a; A:do { a/=10; b++;} while(a>10); do{d=g%10; g/=10; e+=pow(d,b); f++;} while(f!=b+1); if(e==c) {cout<<c<<"\n"; c++; a=g=c; b=1; f=0; e=0; goto A;} else {c++; a=g=c; b=1; f=0; e=0; goto A;}} ◆BASH 腳本實(shí)現(xiàn)計(jì)算100-999之內(nèi)數(shù) #!/bin/bash for (( a=1; a<10; a++ )) do for (( b=0; b<10; b++ )) do for (( c=0; c<10; c++ )) do number1=$((a*100+b*10+c)) number2=$((a**3+b**3+c**3)) if [ $number1 -eq $number2 ]; then echo "Found number $number1" fi done done done
-
贊(17)
回復(fù)(0)
熱門問答
- 定義一個接口,計(jì)算正方體和長方體的體積,并寫一個測試類進(jìn)行測試
- 正在考試,來高手給代碼.還有一道題. 打印出所有的“水仙花數(shù)”,所謂“水仙花數(shù)”是指一個三位數(shù),其各位數(shù)字立方和等于該數(shù)本身。例如:153是一個“水仙花數(shù)”,因?yàn)?53=1的三次方加5的三次方再加3的三次方的和.
2010-06-29 14:52:40
408
1
- 定義一個father和child類,并進(jìn)行測試
2015-01-28 09:46:46
356
2
- 定義并測試一個名為Student的類
- 6.定義并測試一個名為Student的類, //包括域有“學(xué)號”、“姓名”,以及3門課程“數(shù)學(xué)”、“英語”和“計(jì)算機(jī)”的成績, //對所有的域進(jìn)行封裝 //包括的方法有:計(jì)算3門課程的“總分”、“平均分”、“Z高分”及“Z低分”的方法,并測試。
2011-09-25 00:56:16
456
1
- c# 寫一個圓柱體類,另寫一個測試類測試該圓柱類。
- c# 寫一個圓柱體類,另寫一個測試類測試該圓柱類。圓柱體類具有以下成員變量:底半徑,高。具有以下成員函數(shù):求圓柱體表面積,求圓柱體的體積。
2017-01-06 18:46:31
519
1
- java定義一個子類一個父類一個測試類
2012-05-03 20:54:03
330
2
- 求解JAVA,定義一個課程類和一個學(xué)生類和測試類
- 課程類中包含: 屬性:課程的名稱和成績 方法:屬性的get/set方法 學(xué)生類中包含: 屬性:學(xué)生的姓名、一個包含3門課程的數(shù)組和平均成績屬性 方法: 1.屬性的get/set方法 2.顯示學(xué)生所有信息的方法display(),顯示學(xué)生的姓名,三門課程的名稱和成... 課程類中包含: 屬性:課程的名稱和成績 方法:屬性的get/set方法 學(xué)生類中包含: 屬性:學(xué)生的姓名、一個包含3門課程的數(shù)組和平均成績屬性 方法: 1.屬性的get/set方法 2.顯示學(xué)生所有信息的方法display(),顯示學(xué)生的姓名,三門課程的名稱和成績以及平均成績 3.計(jì)算三門課平均成績的方法 4.編寫void changGrade(int i , int score) 方法用來改變學(xué)生第i門課的成績?yōu)閟core參數(shù)指定的成績。注意:確保i的取值范圍為0-2之間,score為0-100之間。 測試類: 在main()方法中: 創(chuàng)建一個學(xué)生對象,完成學(xué)生信息的初始化,顯示學(xué)生的信息。修改學(xué)生第二門課的成績?yōu)?0分,再顯示學(xué)生的信息。 注意:學(xué)生的成績需在0-100之間 請將測試類與學(xué)生類和課程類放在不同的包里 展開
2017-09-05 02:02:09
890
1
- 定義一個測試類javaTest,創(chuàng)建Point類的對象并對其進(jìn)行有關(guān)的操作。
2012-02-23 23:15:55
354
1
- 定義一個Father和Child類,并進(jìn)行測試。 要求如下圖: 求大神幫忙🙏
- 定義一個Father和Child類,并進(jìn)行測試。 要求如下圖: 求大神幫忙🙏🙏🙏
2018-11-20 08:59:40
417
0
- 定義一個矩形類,輸出周長和面積,并做出測試類,檢測結(jié)果是否正確.
2014-04-25 05:22:57
295
1
- Java。定義一個測試類,創(chuàng)建用戶類的對象,然后分別對其他方法進(jìn)行測試
- (一定要測試判斷用戶名和密碼的方法)
2018-11-11 19:42:05
317
0
- junit對一個類進(jìn)行一次測試
- 對junit4.0單元測試有點(diǎn)疑惑,假設(shè)某個類中有許多方法,用@Test注解去進(jìn)行測試,那么如何一次性測完?我知道在outline窗口中有對單個方法中進(jìn)行測試的,但是,如果方法過多那還這樣子不是很麻煩嗎?有沒有一次測完并且能夠定位到哪個方法出錯的,類似junit3的... 對junit4.0單元測試有點(diǎn)疑惑,假設(shè)某個類中有許多方法,用@Test注解去進(jìn)行測試,那么如何一次性測完?我知道在outline窗口中有對單個方法中進(jìn)行測試的,但是,如果方法過多那還這樣子不是很麻煩嗎?有沒有一次測完并且能夠定位到哪個方法出錯的,類似junit3的suite.addTest()可以增加的那種,我想這也是我搞不懂@Suite注解一次測試的一個原因吧,我感覺的我的問題有點(diǎn)奇怪,但是希望明白的可以說一下 展開
2014-09-13 21:08:11
363
1
- 定義一個測試類Testpeople,包含main 方法,定義一個people類型的數(shù)組
- 定義一個測試類Testpeople,包含main 方法,定義一個people類型的數(shù)組,里面包含10個元素,每個元素類型隨機(jī)為ChinaPeople或者AmericanPeople類型,Z后輸出10個元素,并調(diào)用speakHello方法
2017-09-18 03:21:22
328
1
- JAVA設(shè)計(jì)一個類及測試類,定義ExceptionDemoSecond類,具體要求如下:
- 2.設(shè)計(jì)一個類及測試類,具體要求如下: (1)定義ExceptionDemoSecond類,該類中需要一個方法,根據(jù)傳入的int類型的參數(shù)的情況,如果n大于0,返回n的平方根,否則,拋出一個異常; (2)編寫測試類予以測試,測試過程中至少傳入一個大于0和一個小于0的值。 3.... 2.設(shè)計(jì)一個類及測試類,具體要求如下: (1)定義ExceptionDemoSecond類,該類中需要一個方法,根據(jù)傳入的int類型的參數(shù)的情況,如果n大于0,返回n的平方根,否則,拋出一個異常; (2)編寫測試類予以測試,測試過程中至少傳入一個大于0和一個小于0的值。 3.設(shè)計(jì)一個類及其測試類,具體要求如下: (1)定義類ArgumentException,該類包括一個private、int型的實(shí)例變量n (2)包括一個public型可以接受一個int型參數(shù)的構(gòu)造方法, (3)一個public型且返回int型的getN的實(shí)例方法;當(dāng)n大于0時該方法返回實(shí)例變量n的階乘,否則拋出ArgumentException異常。 (4)編寫測試類予以測試,測試過程中至少傳入一個大于0和一個小于0的值。 展開
2014-04-21 19:12:54
305
1
- 用15行左右代碼寫一個10000并發(fā)的測試類
- 用15行左右代碼寫一個10000并發(fā)的測試類
2018-11-29 02:00:07
341
0
- 如何寫一個Point3D的測試類(TestPoint3D類)
- a.創(chuàng)建兩個Point3D類的實(shí)例對象并分別設(shè)置值, b.分別輸入這兩個三維點(diǎn)的坐標(biāo), c.判斷兩個點(diǎn)是不是在同一個位置上。 提示:運(yùn)行這個程序就要在TestPoint3D中的增加main()入口方法 自學(xué)JAVA很多都不懂請高手教我一下 將十分感謝
2006-08-20 14:59:33
434
2
- JAVA 設(shè)計(jì)正方形類和長方形類以及一個測試類
- JAVA 設(shè)計(jì)正方形類和長方形類以及一個測試類,要求這兩個類實(shí)現(xiàn)接口Circumf,分別計(jì)算正方形和長方形的周長;測試類要求分別生成正方形類與長方形類的對象,計(jì)算正方形和長方形的周長。 (接口中需要定義抽象方法shapeCir(),兩個類分別實(shí)現(xiàn)該接口,在抽... JAVA 設(shè)計(jì)正方形類和長方形類以及一個測試類,要求這兩個類實(shí)現(xiàn)接口Circumf,分別計(jì)算正方形和長方形的周長;測試類要求分別生成正方形類與長方形類的對象,計(jì)算正方形和長方形的周長。 (接口中需要定義抽象方法shapeCir(),兩個類分別實(shí)現(xiàn)該接口,在抽象方法shapeCir()中書寫方法體計(jì)算周長,類中的構(gòu)造方法用來獲取不同邊長。) 展開
2010-12-16 15:06:13
540
1
- java測試類怎么寫測試類建立
2018-11-20 19:56:11
311
0
- Java怎么寫一個測試類確定依賴包沒有少?
2015-04-02 14:03:56
345
1
- springboot怎么建測試類測試接口
2017-10-24 22:15:14
279
1
- java定義類與測試類
- 1、定義一個類,在類中定義一個方法,功能輸出“Hello world"字符串,將該類存放在a.org.com包中。 2、編寫測試類,測試上述類。測試類存放在b.org.com包中。 哪位大神,求幫忙!急急急……
2013-11-25 04:56:54
300
1
4月突出貢獻(xiàn)榜
推薦主頁
最新話題





參與評論
登錄后參與評論