c语言——水仙花数问题

2017-04-1518:32:37

  1. 问题描述:打印所有的“水仙花数” 。所谓“水仙花数”是指一个三位数,其各位数字的立方和等于该数本身。

例如:153是“水仙花数”。因为153=13+33+53



2.【算法思想】

首先,确定水仙花数n可能存在的范围,因为n是一个三位数,所以范围确定为 n 从 100 变化到 999。

其次,分离出 n 的百位 i、十位 j、个位 k 后,只要判断 n 是否等于i*i*i+j*j*j+k*k*k 即可知道 n 是否是水仙花数。



3 、代码在vs2012中运行代码

#include <stdio.h>
#include "stdlib.h"  

int main ( )
{
 int i,j,k,n;
 printf( " The result is :");
 for( n=100;n<1000;n++)
 {
     i=n/100;            /*分出百位*/
     j=(n-i*100)/10;     /*分出十位*/
     k=n%100;            /*分出个位*/
     if (i*100+j*10+k==i*i*i+j*j*j+k*k*k)
     {
         printf("%d",n ); /*输出结果*/
     }

   }

  system("pause");   /*解决快闪问题*/
}

4、总结:上述代码不能满足要求属于bug,但是,我在在线编辑器中运行结果为:

result is:153	 370	 371	 407	目前还没有解决
时间: 2024-10-06 18:54:06

c语言——水仙花数问题的相关文章

C语言与水仙花数

C语言与水仙花数 水仙花数:前提三位数,"个位数的立方"加上"十位数的立方"加上"百位数的立方"恰好等于这个数. 我们来用C语言书写水仙花数: 方法一 #include <stdio.h> #include <stdlib.h> int main() { int i,j,k; for(i = 1;i<=9;i++){ //三位数的百位 for(j = 0;j<=9;j++){ //三位数的十位 for(k =

使用C#语言实现输出1000以内的水仙花数

所谓水仙花数,是指一个n位数(n>=3),它的每个位上的数字的n次幂之和等于它本身,例如:153=13+53+33.首先,我们应该解决的关键问题是,怎么通过C#语言判断一个数是不是水仙花数?既然水仙花数的定义是每个位上的数字的n次幂之和等于它本身,那么我们需要先分别得到一个数每个位上的数字,然后判断每个位上的数字的n次幂之和是否等于等于它本身.取出百位的数字可以使用 int a=i/100%10:(其中变量a存储百位数字.先将变量i中的值除以100,因为被除数和除数都是int类型的值,所以得到值

水仙花数&amp;素数&amp;质因数分解的C语言实现

最近,我翻了一下之前的C语言教材,看了三个有意思的小程序,包括:寻找"水仙花数".判断某数是否为素数.对一个数进行质因数分解.我想把这三个东西放到一个程序中,便写下了此文. 算法步骤 1. 寻找"水仙花数". "水仙花数"是指一个三位数,其各位数字的立方和等于该数本身.例如:153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方. 2. 判断某数是否为素数. 素数是指只能被1和它本身整除的数,判断一个数是否为

C语言输出100到999中所有的水仙花数

------------------------------------------------------------------------------------------------------ 水仙花数只是"自幂数"的一种,严格来说三位数的3次幂数才成为水仙花数. 附: 一位自幂数:独身数 两位自幂数:没有 三位自幂数:水仙花数 四位自幂数:四叶玫瑰数 五位自幂数:五角星数 六位自幂数:六合数 七位自幂数:北斗七星数 八位自幂数:八仙数 九位自幂数:九九重阳数 十位自幂数:

用python语言来判断一个数是否是水仙花数?

#用python语言来判断一个数是否是水仙花数? #水仙花数: # 1) 一个三位正整数 ( 即取值区间 [100,1000) ) # 2) 个位数字的立方+十位数字的立方+百位数字的立方=它本身  (即数字 abc = a**3 + b**3 + c**3) 代码: for a in range(1,10):    #定义百位数取值区间 (1,9)     for b in range(10):    #定义十位数取值区间 (0,9)         for c in range(10):  

C语言 &#183; 4-3水仙花数

问题描述 打印所有100至999之间的水仙花数.所谓水仙花数是指满足其各位数字立方和为该数字本身的整数,例如 153=1^3+5^3+3^3. 样例输入 一个满足题目要求的输入范例.例:无 样例输出 153xxxxxx 代码如下: 1 #include<stdio.h> 2 int main(){ 3 int a,b,c; 4 for(int i=100; i<1000; i++){ 5 a = i / 100 % 10; 6 b = i / 10 % 10; 7 c = i / 1 %

C语言练习008:水仙花数

打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数 本身.例如:153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方:计算100-1000满足条件的数字 #include <stdio.h> int main() { int i,x,y,z; for(i=100;i<1000;i++) { x=i%10; y=i/10%10; z=i/100%10; if(i==(x*x*x+

c语言:3种方法;求出0~999之间的所有“水仙花数”并输出。

方法一: #include <stdio.h> int main() { int i,j,k,n; printf("水仙花数:",n); for(n=100;n<1000;n++) { i=n/100; j=n/10-i*10; k=n%10; if(n==i*i*i+j*j*j+k*k*k) printf("%d\n ",n); } return 0; } 输出结果: 水仙花数:153 370 371 407 Press any key to c

C语言:求出0~999之间的所有“水仙花数”并输出

#include <stdio.h> int main() {  int num,unit,ten,hundred;  int i=0;  printf("水仙花数:\n");  for(num=100;num<=999;num++)  {   hundred=num/100;   ten=(num-hundred*100)/10;   unit=num-hundred*100-ten*10;    if(num==hundred*hundred*hundred+te