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个。