编程求所有的水仙花数
1. c语言编程题 找出所有的水仙花数,水仙花数是指一个3位数
import org.junit.Test;
public class NarcissusNumber{
public void isNarcissusNumber(){
//循环[100,999]
for(int i=100;i<=999;i++){
//分割出个位
int a=i%10;
//分割出十位
int b=i/10%10;
//分割出百位
int c=i/100;
//判断该数是否等于【个位的三次方+十位的三次方+百位的三次方】
if(i==(Math.pow(a,3)+Math.pow(b,3)+Math.pow(c,3))){
System.out.println(i+"是水仙花数");
}
}
}
Test
public void test(){
isNarcissusNumber();
}
/**
*结果:
*--->153是水仙花数
*--->370是水仙花数
*--->371是水仙花数
*--->407是水仙花数
*/
}
(1)编程求所有的水仙花数扩展阅读:
import用法
静态的import语句用于导入由另一个模块导出的绑定。无论是否声明了strict mode,导入的模块都运行在严格模式下。在浏览器中,import语句只能在声明了type="mole"的script的标签中使用。
此外,还有一个类似函数的动态import(),它不需要依赖type="mole"的script标签。
在script标签中使用nomole属性,可以确保向后兼容。
在您希望按照一定的条件或者按需加载模块的时候,动态import()是非常有用的。而静态型的import是初始化加载依赖项的最优选择,使用静态import更容易从代码静态分析工具和tree shaking中受益。
语法
import defaultExport from"mole-name";
import*as name from"mole-name";
import{export}from"mole-name";
import{export as alias}from"mole-name";
import{export1,export2}from"mole-name";
import{foo,bar}from"mole-name/path/to/specific/un-exported/file";
import{export1,export2 as alias2,[...]}from"mole-name";
import defaultExport,{export[,[...]]}from"mole-name";
import defaultExport,*as name from"mole-name";
import"mole-name";
var promise=import("mole-name");//这是一个处于第三阶段的提案。
defaultExport
导入模块的默认导出接口的引用名。
mole-name
要导入的模块。通常是包含目标模块的.js文件的相对或绝对路径名,可以不包括.js扩展名。某些特定的打包工具可能允许或需要使用扩展或依赖文件,它会检查比对你的运行环境。只允许单引号和双引号的字符串。
name
导入模块对象整体的别名,在引用导入模块时,它将作为一个命名空间来使用。
export,exportN
被导入模块的导出接口的名称。
alias,aliasN
将引用指定的导入的名称。
2. 编写程序输出所有的水仙花数。
#include<stdio.h>
void main()
{
int a,b,c,d;
for(a=100;a<=999;a++)
{
b=a/100;
c=(a-b*100)/10;
d=a%100%10;
if(b*b*b+c*c*c+d*d*d==a)
printf("水仙花数:%d\n",a);
}
}
这应该是最简单的一个计算水仙花数的专程序啦吧属!
3. 7.编程打印出100~999间所有的“水仙花数”,所谓水仙花数是指一个3位数,其各位数字的立方和等于该数本身。
第一种方式分离每位数字:
#include<stdio.h>
int main()
{
int a,b,c;
int i;
for(i=100;i<1000;i++)
{
a=i%10;
b=i/10%10;
c=i/100;
if(i==a*a*a+b*b*b+c*c*c)
{
printf("%d ",i);
}
}
return 0 ;
}
第二种方式:三重for循环
#include<stdio.h>
int main()
{
int a,b,c;
int i,j,k;
for(i=1;i<=9;i++)
{
for(j=0;j<=9;j++)
{
for(k=0;k<=9;k++)
{
if(i*i*i+j*j*j+k*k*k==i*100+j*10+k)
{
printf("%d%d%d ",i,j,k);
}
}
}
}
printf(" ");
return 0 ;
}
(3)编程求所有的水仙花数扩展阅读:
水仙花数只是自幂数的一种,严格来说3位数的3次幂数才称为水仙花数。
附:其他位数的自幂数名字
一位自幂数:独身数
两位自幂数:没有
三位自幂数:水仙花数
四位自幂数:四叶玫瑰数
五位自幂数:五角星数
六位自幂数:六合数
七位自幂数:北斗七星数
八位自幂数:八仙数
九位自幂数:九九重阳数
十位自幂数:十全十美数
常见水仙花数
水仙花数又称阿姆斯特朗数。
三位的水仙花数共有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: 21897142587612075
17: 35641594208964132
17: 35875699062250035
19: 1517841543307505039
19: 3289582984443187032
19: 4929273885928088826
19: 4498128791164624869
20: 63105425988599693916
21: 449177399146038697307
21: 128468643043731391252
23: 27907865009977052567814
23: 35452590104031691935943
23: 27879694893054074471405
23: 21887696841122916288858
24: 174088005938065293023722
24: 188451485447897896036875
(为环保起见,24位以上的水仙花数略)
最大的水仙花数有39位。十进制自然数中的所有水仙花数共有88个。