用Mathematica 怎么求水仙花数 关于用C语言我会,C#,ASP.NET 我都会,但Mathematica我没有学过语法,现在我提供一个C的,C语言的如下面所示:#include<stdio.h>void main(){ int n,i,j,k; //"水仙花数"是一个三
来源:学生作业帮助网 编辑:作业帮 时间:2024/11/17 05:50:59
用Mathematica 怎么求水仙花数 关于用C语言我会,C#,ASP.NET 我都会,但Mathematica我没有学过语法,现在我提供一个C的,C语言的如下面所示:#include<stdio.h>void main(){ int n,i,j,k; //"水仙花数"是一个三
用Mathematica 怎么求水仙花数 关于用C语言我会,C#,ASP.NET 我都会,但Mathematica我没有学过语法,现在我提供一个C的,C语言的如下面所示:#include<stdio.h>void main(){ int n,i,j,k; //"水仙花数"是一个三位数的数 如153=1*1*1+5*5*5+3*3*3printf("水仙花数有:");for(n=100;n<1000;n++) //求水仙花数的过程,i,j,k分别存放这个三位数中的每一位数{i=n/100;j=(n-i*100)/10;k=n-i*100-j*10;if(n==i*i*i+j*j*j+k*k*k) //找出每一位然后判断它每一位数的立方之和是否等于原数,是就输出printf("%d ",n);}printf("\n");}
用Mathematica 怎么求水仙花数 关于用C语言我会,C#,ASP.NET 我都会,但Mathematica我没有学过语法,现在我提供一个C的,C语言的如下面所示:#include<stdio.h>void main(){ int n,i,j,k; //"水仙花数"是一个三
Mathematica在某种程度上继承了Lisp的血统,其程序应该尽量地优雅而简洁.
g = Total[#^3 & /@ IntegerDigits[#]] &;
Select[Range[100,1000],# == g[#] &]
输出是
{153,370,371,407}
一楼那位似乎根本没有理解Mathematica的程序吧,完全是C风格的写法.
ans = {};
For[ i = 100, i < 1000, i++,
If[ Quotient[ i, 100]^3 + Mod[ Quotient[ i, 10], 10]^3 +
Mod[ i, 10]^3 == i, ans = Join[ ans, { i}]]];
ans
{153, 370, 371, 407}