编译100到999的水仙花数
① 用流程图描述100-999的水仙花数
水仙花数含义:一个正整数有x(x>2)位,它每位位数上的x次幂等于它本身。
题目要求流程图得到在100~999之间的水仙花数,首先设定2个变量x,n。x表示变量100~999,n表示水仙花数量,并且设初始x=100,n=0。接下来判断x是不是属于该范围,若是,则进行水仙花数的判定(附一),判定水仙花数过后x自加一,x=x+1。若不是,则在100~999之间的数都遍历完成,输出数量n。
附一(水仙花判定):x是一个3位数,判定要求按照水仙花数定义。x /100取整;得到百位的数字,x除100的余数再除10取整,得到十位的数字;x除10的余数,就是x的个位数,依次百位十位个位的三次方相加,若与原数x相等则是水仙花数,输出该数字,n自加一;若不等,则不是。
流程图如下图所示:
② 求100999之间的水仙花数c语言
下面的程序代码采用三重循环来进行实现穷举,穷举每一位数字上可能出现的数字,然后把它们拼成一个三位数,检查这个三位数是否符合水仙花数的条件?如果满足就进行输出。int main(){int i,j,k;for(i=1;i<10;i++) for(j=0;j<10;j++) for(k=0;k<10;k++) if(i*i*i+j*j*j+k*k*k==100*i+10*j+k)printf("%d%d%d\n",i,j,k); return 0;}
③ c语言的编程:100~999的水仙花数
#include<stdio.h>
voidmain()
{
inta,b,c,m,count;
count=0;
m=100;
printf("水仙花数为:");
do
{
a=m/100;
b=(m-a*100)/10;
c=m%10;
if(a*a*a+b*b*b+c*c*c==m)
{
printf("%5d",m);
count++;
}
m++;
}
while(m<1000);
printf(" 水仙花数为:%d ",count);
}
④ C语言编写100到999的水仙花数
水仙花数的定义是这样的:一个 n 位数 ( n≥3 ),它的每个位上的数字的 n 次幂之和等于它本身。(例如:1^3 + 5^3+ 3^3 = 153)
这种方法和解一元三次方程一样,套进去很好理解
a=sum/100 是计算百位的数字 ,如553 ,a=553/100=5;
b=sum/10-a*10; 是计算十位的数字,如553 , b=553/10-5*10=5 ;
c=sum-a*100-b*10 是计算个位的数字 如553 ,c=553-5*10-5*10=3;
⑤ C语言怎样编输出所有水仙花数范围100到999
水仙花数是指一个 n 位数 ( n≥3 ),它的每个位上的数字的 n 次幂之和等于它本身。判断一个数是否为水仙花数需要拆分数位,求幂再相加。不过这道题限定了范围,都是三位数,所以可以使用3重循环分别代表3个数位,这样就省去了拆分的麻烦。
代码如下:
#include <stdio.h>
int main()
{
int i, j, k, sum;
sum = 0;
for (i = 1; i < 10; i++)
for (j = 0; j < 10; j++)
for (k = 0; k < 10; k++)
if ((i*i*i + j*j*j + k*k*k) == (i*100 + j*10 + k))
printf("%d\n", i*100 + j*10 + k);
return 0;
}
⑥ 写一个程序用于输出100-999之间的水仙花数
public
class
Practice1
{
/**
*
输出100~999之间的水仙花数(个位,十位,百位数的立方之和等于他本身)
*/
public
static
void
main(String[]
args)
{
int
i;
int
a;
int
b;
int
c;
for(i=100;i<=999;i++){
a=i%10;
b=i/10%10;
c=i/100;
if(a*a*a+b*b*b+c*c*c==i){
System.out.println("100~999之间的水仙花数是"+i);
}
}
}
}