问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

定义一个接口,计算正方体和长方体的体积,并写一个测试类进行测试

发布网友 发布时间:2022-05-02 06:29

我来回答

1个回答

热心网友 时间:2022-06-29 02:29

三位的水仙花数共有4个:153,370,371,407;
四位的水仙花数共有3个:1634,8208,9474;
五位的水仙花数共有3个:54748,92727,93084;
六位的水仙花数只有1个:548834;
七位的水仙花数共有4个:1741725,4210818,9800817,9926315;
八位的水仙花数共有3个:24678050,24678051,88593477 …… …… 使用高精度计算,可以得到超过INT类型上限的水仙花数:
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 (为环保起见,24位以上的水仙花数略) 理论上,最大的水仙花数不超过34位。
[编辑本段]求取方法(非高精度)
以下为在各种编程语言中实现求取水仙花数的方法(非高精度)。
◆PHP “水仙花数”实现代码:
<?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 语言的"水仙花数"实现代码:
#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 实现代码:
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 的"水仙花数"实现代码: 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 的"水仙花数"实现代码: 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++ 编译器上的水仙花数实现代码
#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<<"是水仙花数"<<endl;}; return 0; }
◆pyhon 中实现的代码
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 中实现的代码
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+"是水仙花数"); } } }
◆C# ASP.NET 中的实现代码
for (int i = 100; i < 1000; i++) { int = 0; int shi = 0; int ge = 0; int yushu = 0; = i / 100; yushu = i % 100; shi = yushu / 10; ge = yushu % 10; if (i == * * + shi * shi * shi + ge * ge * ge) { Response.Write("水仙花数:" + i + "<br>"); } }
◆javascript +html 实现可变位数的运算:
<!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>
◆asp 中实现的代码
<% 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 用表单实现法(只计3位)
(1)创建表单Form1并添加文本框Text1与命令按钮Command1 (2)修改Command1的Caption属性为“计算并显示” (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("水仙花数是:") 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 水仙花数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 实现的方法(只计3位数)
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实现的方法(只计3位数)
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实现的方法(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中实现的方法(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实现方法(可现不定位数解)
n=Input["请输入大于2的自然数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 脚本实现计算100-999之内数
#!/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

参考资料:http://ke.baidu.com/view/152077.htm?fr=ala0_1

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
这句话用了什么修辞方法? 属蛇水瓶座女生的性格特点 樱花雨特效礼物怎么解锁 我听了一首歌,里面高潮有句歌词“不要问我敢不敢”。但不知道歌名 ...抖音》我敢闯祸我敢放纵我思考歌曲分享是什么 阳光幼儿园是公立还是私立 江苏天空城市服务有限公司电话是多少? 常州市武进湖塘集体资产经营有限公司怎么样? 华为mate20x使用体验如何 刺激战场排位上分小技巧 提升段位需注意这些细节 JAVA 作业 实验名称:接口,继承与多态 java输入输出流与文件,求源代码!感谢大佬! 想学习测试有没有靠谱的机构可以推荐的? 劝慰父母遵守交通规则的信 海尔空调3匹室内柜机长宽高规格 海尔3匹72Lw随机带空开吗 大学报了金融专业对炒股真的有帮助吗? 炒股一定要懂金融经济方面的知识吗? 我想学炒股,投资,银行,保险类的学科,请问是经济学还是金融学 海尔空调KFR-72LW/02AAF12是大3匹吗? 怎么分海尔空调大3p 高铁学生票直接刷身份证进站 为什么我手机虎牙直播后台运行不显示小窗口,以前还显示,但是能听到声音 金融学是经济学的衍生吗?股票属不属于金融? 炒股和金融有关系吗?我想学习金融 股票是金融吗 绣球花才买回来从盆换成地栽需注意什么? 购买高铁学生票怎么进高铁站 绣球地栽在院子里怎么选位置 高铁学生票怎么进站 年度个人所得税怎么申报 我是vivo用户,刚才不小心恢复出厂设置了,之前手机里的缓存都被清理 请问vivoY55手机不小心被小恢复出厂设置后开机要密码而不知知道密码怎么办? 我的vivoy51不小心被我恢复出厂设置了,没有备份,联系人怎么恢复? 京东白条怎么激活不了呢 我每天激活京东白条都说名额被抢光了 明天再来 请问白条几点刷新呢 京东的白条怎么激活啊?怎么每次都提示今天的激活名额已经抢光了 杜卡迪红衣大魔鬼是什么型号 注册税务师与中级如何搭配考试? 京东白条是不是没有在上面买过东西的新账号申请不了?总是名额被抢光了 自助安装海尔洗衣机? 税务师和中级职称可以同时备考吗 杜卡迪各车型定位 怎样用Photo shop 抠图,然后换背景呀? 杜卡迪哪个型号最好? 中级会计职称/税务师/注会同时备考 怎样更轻巧 海尔洗衣机大框如何安装 有没有给自动抠图安卓版软件?我要给给照片换背景 让海尔洗衣机工作人员上门安装洗衣机,安装能用自己买的材料吗? 手机抠图大师怎么把背景换成白色 中级,税务师,注会如何同时备考才能短期拿下